From 39196cfe3c03b02b9fb08ba51409f9ca48be59bd Mon Sep 17 00:00:00 2001 From: Bhavik MacBook PRO 16 Date: Wed, 5 Apr 2023 13:26:37 +0530 Subject: [PATCH] First Release --- .github/workflows/main.yaml | 27 + .github/workflows/publish.yaml | 19 + .gitignore | 1 + .idea/.gitignore | 8 + .idea/modules.xml | 8 + .idea/php.xml | 19 + .idea/raktbeej-code-review-action.iml | 8 + .idea/vcs.xml | 6 + README.md | 117 + action.yaml | 42 + dist/index.js | 39361 ++++++++++++++++++++++++ dist/licenses.txt | 1035 + index.js | 169 + package-lock.json | 875 + package.json | 26 + 15 files changed, 41721 insertions(+) create mode 100644 .github/workflows/main.yaml create mode 100644 .github/workflows/publish.yaml create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/modules.xml create mode 100644 .idea/php.xml create mode 100644 .idea/raktbeej-code-review-action.iml create mode 100644 .idea/vcs.xml create mode 100644 README.md create mode 100644 action.yaml create mode 100644 dist/index.js create mode 100644 dist/licenses.txt create mode 100644 index.js create mode 100644 package-lock.json create mode 100644 package.json diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml new file mode 100644 index 0000000..ce6e207 --- /dev/null +++ b/.github/workflows/main.yaml @@ -0,0 +1,27 @@ +name: Code Review + +on: + pull_request: + types: [opened] + issue_comment: + types: [created, edited] + +jobs: + code-review: + if: | + github.event_name == 'pull_request' || + (github.event.comment.user.login == 'adshao' && + startsWith(github.event.comment.body, 'chatgpt')) + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - uses: hmarr/debug-action@v2 + - name: Gitea Code Review + uses: ./ + with: + PROGRAMMING_LANGUAGE: 'JavaScript' + REVIEW_COMMENT_PREFIX: 'chatgpt:' + FULL_REVIEW_COMMENT: 'chatgpt' + OPENAI_TOKEN: ${{ secrets.OPENAI_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml new file mode 100644 index 0000000..9813888 --- /dev/null +++ b/.github/workflows/publish.yaml @@ -0,0 +1,19 @@ +name: Publish to Marketplace +on: + push: + tags: + - '*' + +jobs: + publish: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: https://github.com/actions/checkout@v3 + - name: Setup Node.js + uses: https://github.com/actions/setup-node@v3 + with: + node-version: '16' + - name: Install dependencies + run: npm install + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c2658d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules/ diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..04a14aa --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/php.xml b/.idea/php.xml new file mode 100644 index 0000000..f324872 --- /dev/null +++ b/.idea/php.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/raktbeej-code-review-action.iml b/.idea/raktbeej-code-review-action.iml new file mode 100644 index 0000000..c956989 --- /dev/null +++ b/.idea/raktbeej-code-review-action.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..2db58d0 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +### Simplify code reviews, just say `openai`! + +# OpenAI Code Review + +A Gitea Action that uses OpenAI to analyze code in pull request comments. + +## Usage + +To use this action in your workflow, add the following step: + +```yaml +name: OpenAI Code Review +uses: bhavik/gitea-code-review-action@v0.1 +with: + PROGRAMMING_LANGUAGE: 'JavaScript' + REVIEW_COMMENT_PREFIX: 'crai:' + FULL_REVIEW_COMMENT: 'crai' + OPENAI_TOKEN: ${{ secrets.OPENAI_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} +``` + +## Inputs + +This action accepts the following inputs: + +- `PROGRAMMING_LANGUAGE` (optional): The programming language of the code in the GitHub repository. If not provided, the detected programming language will be used. +- `OPENAI_TOKEN` (required): The API token for the OpenAI ChatGPT API. +- `GITHUB_TOKEN` (required): The API token for the Github API. +- `FULL_REVIEW_COMMENT` (required): The comment to trigger code review for the pull request. +- `REVIEW_COMMENT_PREFIX` (required): The comment prefix to trigger code review with the comment. +- `GITHUB_BASE_URL` (optional): The base URL for the GitHub API. +- `MAX_CODE_LENGTH` (optional): The maximum code length for the pull request code to be sent to OpenAI. The default value is 6000. +- `PROMPT_TEMPLATE` (optional): The template for the FULL_REVIEW_COMMENT prompt. The default value is: +``` +Please analyze the pull request's code and inform me whether it requires optimization, and provide an explanation for your decision: + +${code} +``` +- `ANSWER_TEMPLATE` (optional): The template for the answer sent to the GitHub comment. The default value is: +``` +AI Code Review: + +${answer} +``` + +## Outputs + +This action does not produce any outputs. + +## Example workflow + +Here's an example workflow that uses this action to analyze code in pull request comments: + +```yaml +name: Code Review + +on: + issue_comment: + types: [created, edited] + +jobs: + code-review: + runs-on: ubuntu-latest + if: github.event.comment.user.login == 'bhavik' && startsWith(github.event.comment.body, 'openai') + steps: + - name: OpenAI Code Review + uses: bhavik/gitea-code-review-action@v0.1 + with: + PROGRAMMING_LANGUAGE: 'JavaScript' + OPENAI_TOKEN: ${{ secrets.OPENAI_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + FULL_REVIEW_COMMENT: 'openai' + REVIEW_COMMENT_PREFIX: 'openai:' +``` + +This workflow runs the `OpenAI Code Review` action when a pull request comment is created or edited. The action uses the `PROGRAMMING_LANGUAGE`, `FULL_REVIEW_COMMENT`, `REVIEW_COMMENT_PREFIX`, `OPENAI_TOKEN` and `GITHUB_TOKEN` input values to analyze the code in the pull request comment. + +You can also trigger github action when a pull request opened. + +## Github + +### Code Review for PR + +If a comment exactly matches `openai`, a code review will be triggered for the pull request's diff. + +Note that only the first 6000 characters of code will be used due to the token limit of the OpenAI API. + +### Code Review for a specific file + +If a comment starts with `openai:`, you can use it to communicate with ChatGPT just like you would in the official interface. + +To reference the diff code of the pull request in your comment, use ${code}: + +``` +openai: Please explain the usage of the `getPrCode` function: + +${code} +``` + +To reference the diff code of a specific file in the pull request, use ${file:filename}: + +``` +openai: Can you check if there are any bugs in the following code? + +${file:dist/index.js} +``` + +## Screenshots + + +## More Examples + + + +## License + +The code in this repository is licensed under the MIT license. See `LICENSE` for more information. diff --git a/action.yaml b/action.yaml new file mode 100644 index 0000000..622a23b --- /dev/null +++ b/action.yaml @@ -0,0 +1,42 @@ +name: Gitea Code Review +description: A GitHub Action that uses OpenAI ChatGPT to review code in pull request. +inputs: + PROGRAMMING_LANGUAGE: + description: 'The programming language used in the GitHub repository. If not provided, the detected programming language will be used.' + default: '' + FULL_REVIEW_COMMENT: + description: 'The comment to trigger a code review for the pull request.' + default: 'chatgpt' + REVIEW_COMMENT_PREFIX: + description: 'The comment prefix to trigger a code review with the comment content.' + default: 'chatgpt:' + OPENAI_TOKEN: + description: 'The API token for the OpenAI ChatGPT API.' + required: true + GITHUB_TOKEN: + description: 'The API token for the Github API.' + required: true + GITHUB_BASE_URL: + description: 'The base URL for the GitHub API.' + MAX_CODE_LENGTH: + description: 'The maximum code length for the pull request to be sent to OpenAI.' + default: 6000 + type: int + PROMPT_TEMPLATE: + description: 'The template for the FULL_REVIEW_COMMENT prompt.' + default: 'Please analyze the pull request''s code and inform me whether it requires optimization, and provide an explanation for your decision: + + +\`\`\` +${code} +\`\`\`' + ANSWER_TEMPLATE: + description: 'The template for the answer sent to the GitHub comment.' + default: 'AI Code Review: + + +${answer}' + +runs: + using: 'node16' + main: 'dist/index.js' diff --git a/dist/index.js b/dist/index.js new file mode 100644 index 0000000..76c2ea9 --- /dev/null +++ b/dist/index.js @@ -0,0 +1,39361 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 31222: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.issue = exports.issueCommand = void 0; +const os = __importStar(__nccwpck_require__(22037)); +const utils_1 = __nccwpck_require__(74870); +/** + * Commands + * + * Command Format: + * ::name key=value,key=value::message + * + * Examples: + * ::warning::This is the message + * ::set-env name=MY_VAR::some value + */ +function issueCommand(command, properties, message) { + const cmd = new Command(command, properties, message); + process.stdout.write(cmd.toString() + os.EOL); +} +exports.issueCommand = issueCommand; +function issue(name, message = '') { + issueCommand(name, {}, message); +} +exports.issue = issue; +const CMD_STRING = '::'; +class Command { + constructor(command, properties, message) { + if (!command) { + command = 'missing.command'; + } + this.command = command; + this.properties = properties; + this.message = message; + } + toString() { + let cmdStr = CMD_STRING + this.command; + if (this.properties && Object.keys(this.properties).length > 0) { + cmdStr += ' '; + let first = true; + for (const key in this.properties) { + if (this.properties.hasOwnProperty(key)) { + const val = this.properties[key]; + if (val) { + if (first) { + first = false; + } + else { + cmdStr += ','; + } + cmdStr += `${key}=${escapeProperty(val)}`; + } + } + } + } + cmdStr += `${CMD_STRING}${escapeData(this.message)}`; + return cmdStr; + } +} +function escapeData(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A'); +} +function escapeProperty(s) { + return utils_1.toCommandValue(s) + .replace(/%/g, '%25') + .replace(/\r/g, '%0D') + .replace(/\n/g, '%0A') + .replace(/:/g, '%3A') + .replace(/,/g, '%2C'); +} +//# sourceMappingURL=command.js.map + +/***/ }), + +/***/ 75714: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (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); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getIDToken = exports.getState = exports.saveState = exports.group = exports.endGroup = exports.startGroup = exports.info = exports.notice = exports.warning = exports.error = exports.debug = exports.isDebug = exports.setFailed = exports.setCommandEcho = exports.setOutput = exports.getBooleanInput = exports.getMultilineInput = exports.getInput = exports.addPath = exports.setSecret = exports.exportVariable = exports.ExitCode = void 0; +const command_1 = __nccwpck_require__(31222); +const file_command_1 = __nccwpck_require__(80527); +const utils_1 = __nccwpck_require__(74870); +const os = __importStar(__nccwpck_require__(22037)); +const path = __importStar(__nccwpck_require__(71017)); +const oidc_utils_1 = __nccwpck_require__(32542); +/** + * The code to exit an action + */ +var ExitCode; +(function (ExitCode) { + /** + * A code indicating that the action was successful + */ + ExitCode[ExitCode["Success"] = 0] = "Success"; + /** + * A code indicating that the action was a failure + */ + ExitCode[ExitCode["Failure"] = 1] = "Failure"; +})(ExitCode = exports.ExitCode || (exports.ExitCode = {})); +//----------------------------------------------------------------------- +// Variables +//----------------------------------------------------------------------- +/** + * Sets env variable for this action and future actions in the job + * @param name the name of the variable to set + * @param val the value of the variable. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function exportVariable(name, val) { + const convertedVal = utils_1.toCommandValue(val); + process.env[name] = convertedVal; + const filePath = process.env['GITHUB_ENV'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('ENV', file_command_1.prepareKeyValueMessage(name, val)); + } + command_1.issueCommand('set-env', { name }, convertedVal); +} +exports.exportVariable = exportVariable; +/** + * Registers a secret which will get masked from logs + * @param secret value of the secret + */ +function setSecret(secret) { + command_1.issueCommand('add-mask', {}, secret); +} +exports.setSecret = setSecret; +/** + * Prepends inputPath to the PATH (for this action and future actions) + * @param inputPath + */ +function addPath(inputPath) { + const filePath = process.env['GITHUB_PATH'] || ''; + if (filePath) { + file_command_1.issueFileCommand('PATH', inputPath); + } + else { + command_1.issueCommand('add-path', {}, inputPath); + } + process.env['PATH'] = `${inputPath}${path.delimiter}${process.env['PATH']}`; +} +exports.addPath = addPath; +/** + * Gets the value of an input. + * Unless trimWhitespace is set to false in InputOptions, the value is also trimmed. + * Returns an empty string if the value is not defined. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string + */ +function getInput(name, options) { + const val = process.env[`INPUT_${name.replace(/ /g, '_').toUpperCase()}`] || ''; + if (options && options.required && !val) { + throw new Error(`Input required and not supplied: ${name}`); + } + if (options && options.trimWhitespace === false) { + return val; + } + return val.trim(); +} +exports.getInput = getInput; +/** + * Gets the values of an multiline input. Each value is also trimmed. + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns string[] + * + */ +function getMultilineInput(name, options) { + const inputs = getInput(name, options) + .split('\n') + .filter(x => x !== ''); + if (options && options.trimWhitespace === false) { + return inputs; + } + return inputs.map(input => input.trim()); +} +exports.getMultilineInput = getMultilineInput; +/** + * Gets the input value of the boolean type in the YAML 1.2 "core schema" specification. + * Support boolean input list: `true | True | TRUE | false | False | FALSE` . + * The return value is also in boolean type. + * ref: https://yaml.org/spec/1.2/spec.html#id2804923 + * + * @param name name of the input to get + * @param options optional. See InputOptions. + * @returns boolean + */ +function getBooleanInput(name, options) { + const trueValue = ['true', 'True', 'TRUE']; + const falseValue = ['false', 'False', 'FALSE']; + const val = getInput(name, options); + if (trueValue.includes(val)) + return true; + if (falseValue.includes(val)) + return false; + throw new TypeError(`Input does not meet YAML 1.2 "Core Schema" specification: ${name}\n` + + `Support boolean input list: \`true | True | TRUE | false | False | FALSE\``); +} +exports.getBooleanInput = getBooleanInput; +/** + * Sets the value of an output. + * + * @param name name of the output to set + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function setOutput(name, value) { + const filePath = process.env['GITHUB_OUTPUT'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('OUTPUT', file_command_1.prepareKeyValueMessage(name, value)); + } + process.stdout.write(os.EOL); + command_1.issueCommand('set-output', { name }, utils_1.toCommandValue(value)); +} +exports.setOutput = setOutput; +/** + * Enables or disables the echoing of commands into stdout for the rest of the step. + * Echoing is disabled by default if ACTIONS_STEP_DEBUG is not set. + * + */ +function setCommandEcho(enabled) { + command_1.issue('echo', enabled ? 'on' : 'off'); +} +exports.setCommandEcho = setCommandEcho; +//----------------------------------------------------------------------- +// Results +//----------------------------------------------------------------------- +/** + * Sets the action status to failed. + * When the action exits it will be with an exit code of 1 + * @param message add error issue message + */ +function setFailed(message) { + process.exitCode = ExitCode.Failure; + error(message); +} +exports.setFailed = setFailed; +//----------------------------------------------------------------------- +// Logging Commands +//----------------------------------------------------------------------- +/** + * Gets whether Actions Step Debug is on or not + */ +function isDebug() { + return process.env['RUNNER_DEBUG'] === '1'; +} +exports.isDebug = isDebug; +/** + * Writes debug message to user log + * @param message debug message + */ +function debug(message) { + command_1.issueCommand('debug', {}, message); +} +exports.debug = debug; +/** + * Adds an error issue + * @param message error issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function error(message, properties = {}) { + command_1.issueCommand('error', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.error = error; +/** + * Adds a warning issue + * @param message warning issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function warning(message, properties = {}) { + command_1.issueCommand('warning', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.warning = warning; +/** + * Adds a notice issue + * @param message notice issue message. Errors will be converted to string via toString() + * @param properties optional properties to add to the annotation. + */ +function notice(message, properties = {}) { + command_1.issueCommand('notice', utils_1.toCommandProperties(properties), message instanceof Error ? message.toString() : message); +} +exports.notice = notice; +/** + * Writes info to log with console.log. + * @param message info message + */ +function info(message) { + process.stdout.write(message + os.EOL); +} +exports.info = info; +/** + * Begin an output group. + * + * Output until the next `groupEnd` will be foldable in this group + * + * @param name The name of the output group + */ +function startGroup(name) { + command_1.issue('group', name); +} +exports.startGroup = startGroup; +/** + * End an output group. + */ +function endGroup() { + command_1.issue('endgroup'); +} +exports.endGroup = endGroup; +/** + * Wrap an asynchronous function call in a group. + * + * Returns the same type as the function itself. + * + * @param name The name of the group + * @param fn The function to wrap in the group + */ +function group(name, fn) { + return __awaiter(this, void 0, void 0, function* () { + startGroup(name); + let result; + try { + result = yield fn(); + } + finally { + endGroup(); + } + return result; + }); +} +exports.group = group; +//----------------------------------------------------------------------- +// Wrapper action state +//----------------------------------------------------------------------- +/** + * Saves state for current action, the state can only be retrieved by this action's post job execution. + * + * @param name name of the state to store + * @param value value to store. Non-string values will be converted to a string via JSON.stringify + */ +// eslint-disable-next-line @typescript-eslint/no-explicit-any +function saveState(name, value) { + const filePath = process.env['GITHUB_STATE'] || ''; + if (filePath) { + return file_command_1.issueFileCommand('STATE', file_command_1.prepareKeyValueMessage(name, value)); + } + command_1.issueCommand('save-state', { name }, utils_1.toCommandValue(value)); +} +exports.saveState = saveState; +/** + * Gets the value of an state set by this action's main execution. + * + * @param name name of the state to get + * @returns string + */ +function getState(name) { + return process.env[`STATE_${name}`] || ''; +} +exports.getState = getState; +function getIDToken(aud) { + return __awaiter(this, void 0, void 0, function* () { + return yield oidc_utils_1.OidcClient.getIDToken(aud); + }); +} +exports.getIDToken = getIDToken; +/** + * Summary exports + */ +var summary_1 = __nccwpck_require__(37863); +Object.defineProperty(exports, "summary", ({ enumerable: true, get: function () { return summary_1.summary; } })); +/** + * @deprecated use core.summary + */ +var summary_2 = __nccwpck_require__(37863); +Object.defineProperty(exports, "markdownSummary", ({ enumerable: true, get: function () { return summary_2.markdownSummary; } })); +/** + * Path exports + */ +var path_utils_1 = __nccwpck_require__(59624); +Object.defineProperty(exports, "toPosixPath", ({ enumerable: true, get: function () { return path_utils_1.toPosixPath; } })); +Object.defineProperty(exports, "toWin32Path", ({ enumerable: true, get: function () { return path_utils_1.toWin32Path; } })); +Object.defineProperty(exports, "toPlatformPath", ({ enumerable: true, get: function () { return path_utils_1.toPlatformPath; } })); +//# sourceMappingURL=core.js.map + +/***/ }), + +/***/ 80527: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +// For internal use, subject to change. +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.prepareKeyValueMessage = exports.issueFileCommand = void 0; +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +const fs = __importStar(__nccwpck_require__(57147)); +const os = __importStar(__nccwpck_require__(22037)); +const uuid_1 = __nccwpck_require__(99657); +const utils_1 = __nccwpck_require__(74870); +function issueFileCommand(command, message) { + const filePath = process.env[`GITHUB_${command}`]; + if (!filePath) { + throw new Error(`Unable to find environment variable for file command ${command}`); + } + if (!fs.existsSync(filePath)) { + throw new Error(`Missing file at path: ${filePath}`); + } + fs.appendFileSync(filePath, `${utils_1.toCommandValue(message)}${os.EOL}`, { + encoding: 'utf8' + }); +} +exports.issueFileCommand = issueFileCommand; +function prepareKeyValueMessage(key, value) { + const delimiter = `ghadelimiter_${uuid_1.v4()}`; + const convertedValue = utils_1.toCommandValue(value); + // These should realistically never happen, but just in case someone finds a + // way to exploit uuid generation let's not allow keys or values that contain + // the delimiter. + if (key.includes(delimiter)) { + throw new Error(`Unexpected input: name should not contain the delimiter "${delimiter}"`); + } + if (convertedValue.includes(delimiter)) { + throw new Error(`Unexpected input: value should not contain the delimiter "${delimiter}"`); + } + return `${key}<<${delimiter}${os.EOL}${convertedValue}${os.EOL}${delimiter}`; +} +exports.prepareKeyValueMessage = prepareKeyValueMessage; +//# sourceMappingURL=file-command.js.map + +/***/ }), + +/***/ 32542: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (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); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.OidcClient = void 0; +const http_client_1 = __nccwpck_require__(86420); +const auth_1 = __nccwpck_require__(16669); +const core_1 = __nccwpck_require__(75714); +class OidcClient { + static createHttpClient(allowRetry = true, maxRetry = 10) { + const requestOptions = { + allowRetries: allowRetry, + maxRetries: maxRetry + }; + return new http_client_1.HttpClient('actions/oidc-client', [new auth_1.BearerCredentialHandler(OidcClient.getRequestToken())], requestOptions); + } + static getRequestToken() { + const token = process.env['ACTIONS_ID_TOKEN_REQUEST_TOKEN']; + if (!token) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_TOKEN env variable'); + } + return token; + } + static getIDTokenUrl() { + const runtimeUrl = process.env['ACTIONS_ID_TOKEN_REQUEST_URL']; + if (!runtimeUrl) { + throw new Error('Unable to get ACTIONS_ID_TOKEN_REQUEST_URL env variable'); + } + return runtimeUrl; + } + static getCall(id_token_url) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const httpclient = OidcClient.createHttpClient(); + const res = yield httpclient + .getJson(id_token_url) + .catch(error => { + throw new Error(`Failed to get ID Token. \n + Error Code : ${error.statusCode}\n + Error Message: ${error.result.message}`); + }); + const id_token = (_a = res.result) === null || _a === void 0 ? void 0 : _a.value; + if (!id_token) { + throw new Error('Response json body do not have ID Token field'); + } + return id_token; + }); + } + static getIDToken(audience) { + return __awaiter(this, void 0, void 0, function* () { + try { + // New ID Token is requested from action service + let id_token_url = OidcClient.getIDTokenUrl(); + if (audience) { + const encodedAudience = encodeURIComponent(audience); + id_token_url = `${id_token_url}&audience=${encodedAudience}`; + } + core_1.debug(`ID token url is ${id_token_url}`); + const id_token = yield OidcClient.getCall(id_token_url); + core_1.setSecret(id_token); + return id_token; + } + catch (error) { + throw new Error(`Error message: ${error.message}`); + } + }); + } +} +exports.OidcClient = OidcClient; +//# sourceMappingURL=oidc-utils.js.map + +/***/ }), + +/***/ 59624: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.toPlatformPath = exports.toWin32Path = exports.toPosixPath = void 0; +const path = __importStar(__nccwpck_require__(71017)); +/** + * toPosixPath converts the given path to the posix form. On Windows, \\ will be + * replaced with /. + * + * @param pth. Path to transform. + * @return string Posix path. + */ +function toPosixPath(pth) { + return pth.replace(/[\\]/g, '/'); +} +exports.toPosixPath = toPosixPath; +/** + * toWin32Path converts the given path to the win32 form. On Linux, / will be + * replaced with \\. + * + * @param pth. Path to transform. + * @return string Win32 path. + */ +function toWin32Path(pth) { + return pth.replace(/[/]/g, '\\'); +} +exports.toWin32Path = toWin32Path; +/** + * toPlatformPath converts the given path to a platform-specific path. It does + * this by replacing instances of / and \ with the platform-specific path + * separator. + * + * @param pth The path to platformize. + * @return string The platform-specific path. + */ +function toPlatformPath(pth) { + return pth.replace(/[/\\]/g, path.sep); +} +exports.toPlatformPath = toPlatformPath; +//# sourceMappingURL=path-utils.js.map + +/***/ }), + +/***/ 37863: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (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); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.summary = exports.markdownSummary = exports.SUMMARY_DOCS_URL = exports.SUMMARY_ENV_VAR = void 0; +const os_1 = __nccwpck_require__(22037); +const fs_1 = __nccwpck_require__(57147); +const { access, appendFile, writeFile } = fs_1.promises; +exports.SUMMARY_ENV_VAR = 'GITHUB_STEP_SUMMARY'; +exports.SUMMARY_DOCS_URL = 'https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#adding-a-job-summary'; +class Summary { + constructor() { + this._buffer = ''; + } + /** + * Finds the summary file path from the environment, rejects if env var is not found or file does not exist + * Also checks r/w permissions. + * + * @returns step summary file path + */ + filePath() { + return __awaiter(this, void 0, void 0, function* () { + if (this._filePath) { + return this._filePath; + } + const pathFromEnv = process.env[exports.SUMMARY_ENV_VAR]; + if (!pathFromEnv) { + throw new Error(`Unable to find environment variable for $${exports.SUMMARY_ENV_VAR}. Check if your runtime environment supports job summaries.`); + } + try { + yield access(pathFromEnv, fs_1.constants.R_OK | fs_1.constants.W_OK); + } + catch (_a) { + throw new Error(`Unable to access summary file: '${pathFromEnv}'. Check if the file has correct read/write permissions.`); + } + this._filePath = pathFromEnv; + return this._filePath; + }); + } + /** + * Wraps content in an HTML tag, adding any HTML attributes + * + * @param {string} tag HTML tag to wrap + * @param {string | null} content content within the tag + * @param {[attribute: string]: string} attrs key-value list of HTML attributes to add + * + * @returns {string} content wrapped in HTML element + */ + wrap(tag, content, attrs = {}) { + const htmlAttrs = Object.entries(attrs) + .map(([key, value]) => ` ${key}="${value}"`) + .join(''); + if (!content) { + return `<${tag}${htmlAttrs}>`; + } + return `<${tag}${htmlAttrs}>${content}`; + } + /** + * Writes text in the buffer to the summary buffer file and empties buffer. Will append by default. + * + * @param {SummaryWriteOptions} [options] (optional) options for write operation + * + * @returns {Promise} summary instance + */ + write(options) { + return __awaiter(this, void 0, void 0, function* () { + const overwrite = !!(options === null || options === void 0 ? void 0 : options.overwrite); + const filePath = yield this.filePath(); + const writeFunc = overwrite ? writeFile : appendFile; + yield writeFunc(filePath, this._buffer, { encoding: 'utf8' }); + return this.emptyBuffer(); + }); + } + /** + * Clears the summary buffer and wipes the summary file + * + * @returns {Summary} summary instance + */ + clear() { + return __awaiter(this, void 0, void 0, function* () { + return this.emptyBuffer().write({ overwrite: true }); + }); + } + /** + * Returns the current summary buffer as a string + * + * @returns {string} string of summary buffer + */ + stringify() { + return this._buffer; + } + /** + * If the summary buffer is empty + * + * @returns {boolen} true if the buffer is empty + */ + isEmptyBuffer() { + return this._buffer.length === 0; + } + /** + * Resets the summary buffer without writing to summary file + * + * @returns {Summary} summary instance + */ + emptyBuffer() { + this._buffer = ''; + return this; + } + /** + * Adds raw text to the summary buffer + * + * @param {string} text content to add + * @param {boolean} [addEOL=false] (optional) append an EOL to the raw text (default: false) + * + * @returns {Summary} summary instance + */ + addRaw(text, addEOL = false) { + this._buffer += text; + return addEOL ? this.addEOL() : this; + } + /** + * Adds the operating system-specific end-of-line marker to the buffer + * + * @returns {Summary} summary instance + */ + addEOL() { + return this.addRaw(os_1.EOL); + } + /** + * Adds an HTML codeblock to the summary buffer + * + * @param {string} code content to render within fenced code block + * @param {string} lang (optional) language to syntax highlight code + * + * @returns {Summary} summary instance + */ + addCodeBlock(code, lang) { + const attrs = Object.assign({}, (lang && { lang })); + const element = this.wrap('pre', this.wrap('code', code), attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML list to the summary buffer + * + * @param {string[]} items list of items to render + * @param {boolean} [ordered=false] (optional) if the rendered list should be ordered or not (default: false) + * + * @returns {Summary} summary instance + */ + addList(items, ordered = false) { + const tag = ordered ? 'ol' : 'ul'; + const listItems = items.map(item => this.wrap('li', item)).join(''); + const element = this.wrap(tag, listItems); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML table to the summary buffer + * + * @param {SummaryTableCell[]} rows table rows + * + * @returns {Summary} summary instance + */ + addTable(rows) { + const tableBody = rows + .map(row => { + const cells = row + .map(cell => { + if (typeof cell === 'string') { + return this.wrap('td', cell); + } + const { header, data, colspan, rowspan } = cell; + const tag = header ? 'th' : 'td'; + const attrs = Object.assign(Object.assign({}, (colspan && { colspan })), (rowspan && { rowspan })); + return this.wrap(tag, data, attrs); + }) + .join(''); + return this.wrap('tr', cells); + }) + .join(''); + const element = this.wrap('table', tableBody); + return this.addRaw(element).addEOL(); + } + /** + * Adds a collapsable HTML details element to the summary buffer + * + * @param {string} label text for the closed state + * @param {string} content collapsable content + * + * @returns {Summary} summary instance + */ + addDetails(label, content) { + const element = this.wrap('details', this.wrap('summary', label) + content); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML image tag to the summary buffer + * + * @param {string} src path to the image you to embed + * @param {string} alt text description of the image + * @param {SummaryImageOptions} options (optional) addition image attributes + * + * @returns {Summary} summary instance + */ + addImage(src, alt, options) { + const { width, height } = options || {}; + const attrs = Object.assign(Object.assign({}, (width && { width })), (height && { height })); + const element = this.wrap('img', null, Object.assign({ src, alt }, attrs)); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML section heading element + * + * @param {string} text heading text + * @param {number | string} [level=1] (optional) the heading level, default: 1 + * + * @returns {Summary} summary instance + */ + addHeading(text, level) { + const tag = `h${level}`; + const allowedTag = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].includes(tag) + ? tag + : 'h1'; + const element = this.wrap(allowedTag, text); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML thematic break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addSeparator() { + const element = this.wrap('hr', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML line break (
) to the summary buffer + * + * @returns {Summary} summary instance + */ + addBreak() { + const element = this.wrap('br', null); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML blockquote to the summary buffer + * + * @param {string} text quote text + * @param {string} cite (optional) citation url + * + * @returns {Summary} summary instance + */ + addQuote(text, cite) { + const attrs = Object.assign({}, (cite && { cite })); + const element = this.wrap('blockquote', text, attrs); + return this.addRaw(element).addEOL(); + } + /** + * Adds an HTML anchor tag to the summary buffer + * + * @param {string} text link text/content + * @param {string} href hyperlink + * + * @returns {Summary} summary instance + */ + addLink(text, href) { + const element = this.wrap('a', text, { href }); + return this.addRaw(element).addEOL(); + } +} +const _summary = new Summary(); +/** + * @deprecated use `core.summary` + */ +exports.markdownSummary = _summary; +exports.summary = _summary; +//# sourceMappingURL=summary.js.map + +/***/ }), + +/***/ 74870: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +// We use any as a valid input type +/* eslint-disable @typescript-eslint/no-explicit-any */ +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.toCommandProperties = exports.toCommandValue = void 0; +/** + * Sanitizes an input into a string so it can be passed into issueCommand safely + * @param input input to sanitize into a string + */ +function toCommandValue(input) { + if (input === null || input === undefined) { + return ''; + } + else if (typeof input === 'string' || input instanceof String) { + return input; + } + return JSON.stringify(input); +} +exports.toCommandValue = toCommandValue; +/** + * + * @param annotationProperties + * @returns The command properties to send with the actual annotation command + * See IssueCommandProperties: https://github.com/actions/runner/blob/main/src/Runner.Worker/ActionCommandManager.cs#L646 + */ +function toCommandProperties(annotationProperties) { + if (!Object.keys(annotationProperties).length) { + return {}; + } + return { + title: annotationProperties.title, + file: annotationProperties.file, + line: annotationProperties.startLine, + endLine: annotationProperties.endLine, + col: annotationProperties.startColumn, + endColumn: annotationProperties.endColumn + }; +} +exports.toCommandProperties = toCommandProperties; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 46165: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Context = void 0; +const fs_1 = __nccwpck_require__(57147); +const os_1 = __nccwpck_require__(22037); +class Context { + /** + * Hydrate the context from the environment + */ + constructor() { + var _a, _b, _c; + this.payload = {}; + if (process.env.GITHUB_EVENT_PATH) { + if (fs_1.existsSync(process.env.GITHUB_EVENT_PATH)) { + this.payload = JSON.parse(fs_1.readFileSync(process.env.GITHUB_EVENT_PATH, { encoding: 'utf8' })); + } + else { + const path = process.env.GITHUB_EVENT_PATH; + process.stdout.write(`GITHUB_EVENT_PATH ${path} does not exist${os_1.EOL}`); + } + } + this.eventName = process.env.GITHUB_EVENT_NAME; + this.sha = process.env.GITHUB_SHA; + this.ref = process.env.GITHUB_REF; + this.workflow = process.env.GITHUB_WORKFLOW; + this.action = process.env.GITHUB_ACTION; + this.actor = process.env.GITHUB_ACTOR; + this.job = process.env.GITHUB_JOB; + this.runNumber = parseInt(process.env.GITHUB_RUN_NUMBER, 10); + this.runId = parseInt(process.env.GITHUB_RUN_ID, 10); + this.apiUrl = (_a = process.env.GITHUB_API_URL) !== null && _a !== void 0 ? _a : `https://api.github.com`; + this.serverUrl = (_b = process.env.GITHUB_SERVER_URL) !== null && _b !== void 0 ? _b : `https://github.com`; + this.graphqlUrl = (_c = process.env.GITHUB_GRAPHQL_URL) !== null && _c !== void 0 ? _c : `https://api.github.com/graphql`; + } + get issue() { + const payload = this.payload; + return Object.assign(Object.assign({}, this.repo), { number: (payload.issue || payload.pull_request || payload).number }); + } + get repo() { + if (process.env.GITHUB_REPOSITORY) { + const [owner, repo] = process.env.GITHUB_REPOSITORY.split('/'); + return { owner, repo }; + } + if (this.payload.repository) { + return { + owner: this.payload.repository.owner.login, + repo: this.payload.repository.name + }; + } + throw new Error("context.repo requires a GITHUB_REPOSITORY environment variable like 'owner/repo'"); + } +} +exports.Context = Context; +//# sourceMappingURL=context.js.map + +/***/ }), + +/***/ 183: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getOctokit = exports.context = void 0; +const Context = __importStar(__nccwpck_require__(46165)); +const utils_1 = __nccwpck_require__(38468); +exports.context = new Context.Context(); +/** + * Returns a hydrated octokit ready to use for GitHub Actions + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokit(token, options, ...additionalPlugins) { + const GitHubWithPlugins = utils_1.GitHub.plugin(...additionalPlugins); + return new GitHubWithPlugins(utils_1.getOctokitOptions(token, options)); +} +exports.getOctokit = getOctokit; +//# sourceMappingURL=github.js.map + +/***/ }), + +/***/ 68453: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getApiBaseUrl = exports.getProxyAgent = exports.getAuthString = void 0; +const httpClient = __importStar(__nccwpck_require__(86420)); +function getAuthString(token, options) { + if (!token && !options.auth) { + throw new Error('Parameter token or opts.auth is required'); + } + else if (token && options.auth) { + throw new Error('Parameters token and opts.auth may not both be specified'); + } + return typeof options.auth === 'string' ? options.auth : `token ${token}`; +} +exports.getAuthString = getAuthString; +function getProxyAgent(destinationUrl) { + const hc = new httpClient.HttpClient(); + return hc.getAgent(destinationUrl); +} +exports.getProxyAgent = getProxyAgent; +function getApiBaseUrl() { + return process.env['GITHUB_API_URL'] || 'https://api.github.com'; +} +exports.getApiBaseUrl = getApiBaseUrl; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 38468: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.getOctokitOptions = exports.GitHub = exports.defaults = exports.context = void 0; +const Context = __importStar(__nccwpck_require__(46165)); +const Utils = __importStar(__nccwpck_require__(68453)); +// octokit + plugins +const core_1 = __nccwpck_require__(43401); +const plugin_rest_endpoint_methods_1 = __nccwpck_require__(60465); +const plugin_paginate_rest_1 = __nccwpck_require__(13505); +exports.context = new Context.Context(); +const baseUrl = Utils.getApiBaseUrl(); +exports.defaults = { + baseUrl, + request: { + agent: Utils.getProxyAgent(baseUrl) + } +}; +exports.GitHub = core_1.Octokit.plugin(plugin_rest_endpoint_methods_1.restEndpointMethods, plugin_paginate_rest_1.paginateRest).defaults(exports.defaults); +/** + * Convience function to correctly format Octokit Options to pass into the constructor. + * + * @param token the repo PAT or GITHUB_TOKEN + * @param options other options to set + */ +function getOctokitOptions(token, options) { + const opts = Object.assign({}, options || {}); // Shallow clone - don't mutate the object provided by the caller + // Auth + const auth = Utils.getAuthString(token, opts); + if (auth) { + opts.auth = auth; + } + return opts; +} +exports.getOctokitOptions = getOctokitOptions; +//# sourceMappingURL=utils.js.map + +/***/ }), + +/***/ 16669: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (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); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PersonalAccessTokenCredentialHandler = exports.BearerCredentialHandler = exports.BasicCredentialHandler = void 0; +class BasicCredentialHandler { + constructor(username, password) { + this.username = username; + this.password = password; + } + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`${this.username}:${this.password}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BasicCredentialHandler = BasicCredentialHandler; +class BearerCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Bearer ${this.token}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.BearerCredentialHandler = BearerCredentialHandler; +class PersonalAccessTokenCredentialHandler { + constructor(token) { + this.token = token; + } + // currently implements pre-authorization + // TODO: support preAuth = false where it hooks on 401 + prepareRequest(options) { + if (!options.headers) { + throw Error('The request has no headers'); + } + options.headers['Authorization'] = `Basic ${Buffer.from(`PAT:${this.token}`).toString('base64')}`; + } + // This handler cannot handle 401 + canHandleAuthentication() { + return false; + } + handleAuthentication() { + return __awaiter(this, void 0, void 0, function* () { + throw new Error('not implemented'); + }); + } +} +exports.PersonalAccessTokenCredentialHandler = PersonalAccessTokenCredentialHandler; +//# sourceMappingURL=auth.js.map + +/***/ }), + +/***/ 86420: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +/* eslint-disable @typescript-eslint/no-explicit-any */ +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.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __awaiter = (this && this.__awaiter) || function (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); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.HttpClient = exports.isHttps = exports.HttpClientResponse = exports.HttpClientError = exports.getProxyUrl = exports.MediaTypes = exports.Headers = exports.HttpCodes = void 0; +const http = __importStar(__nccwpck_require__(13685)); +const https = __importStar(__nccwpck_require__(95687)); +const pm = __importStar(__nccwpck_require__(65354)); +const tunnel = __importStar(__nccwpck_require__(43010)); +var HttpCodes; +(function (HttpCodes) { + HttpCodes[HttpCodes["OK"] = 200] = "OK"; + HttpCodes[HttpCodes["MultipleChoices"] = 300] = "MultipleChoices"; + HttpCodes[HttpCodes["MovedPermanently"] = 301] = "MovedPermanently"; + HttpCodes[HttpCodes["ResourceMoved"] = 302] = "ResourceMoved"; + HttpCodes[HttpCodes["SeeOther"] = 303] = "SeeOther"; + HttpCodes[HttpCodes["NotModified"] = 304] = "NotModified"; + HttpCodes[HttpCodes["UseProxy"] = 305] = "UseProxy"; + HttpCodes[HttpCodes["SwitchProxy"] = 306] = "SwitchProxy"; + HttpCodes[HttpCodes["TemporaryRedirect"] = 307] = "TemporaryRedirect"; + HttpCodes[HttpCodes["PermanentRedirect"] = 308] = "PermanentRedirect"; + HttpCodes[HttpCodes["BadRequest"] = 400] = "BadRequest"; + HttpCodes[HttpCodes["Unauthorized"] = 401] = "Unauthorized"; + HttpCodes[HttpCodes["PaymentRequired"] = 402] = "PaymentRequired"; + HttpCodes[HttpCodes["Forbidden"] = 403] = "Forbidden"; + HttpCodes[HttpCodes["NotFound"] = 404] = "NotFound"; + HttpCodes[HttpCodes["MethodNotAllowed"] = 405] = "MethodNotAllowed"; + HttpCodes[HttpCodes["NotAcceptable"] = 406] = "NotAcceptable"; + HttpCodes[HttpCodes["ProxyAuthenticationRequired"] = 407] = "ProxyAuthenticationRequired"; + HttpCodes[HttpCodes["RequestTimeout"] = 408] = "RequestTimeout"; + HttpCodes[HttpCodes["Conflict"] = 409] = "Conflict"; + HttpCodes[HttpCodes["Gone"] = 410] = "Gone"; + HttpCodes[HttpCodes["TooManyRequests"] = 429] = "TooManyRequests"; + HttpCodes[HttpCodes["InternalServerError"] = 500] = "InternalServerError"; + HttpCodes[HttpCodes["NotImplemented"] = 501] = "NotImplemented"; + HttpCodes[HttpCodes["BadGateway"] = 502] = "BadGateway"; + HttpCodes[HttpCodes["ServiceUnavailable"] = 503] = "ServiceUnavailable"; + HttpCodes[HttpCodes["GatewayTimeout"] = 504] = "GatewayTimeout"; +})(HttpCodes = exports.HttpCodes || (exports.HttpCodes = {})); +var Headers; +(function (Headers) { + Headers["Accept"] = "accept"; + Headers["ContentType"] = "content-type"; +})(Headers = exports.Headers || (exports.Headers = {})); +var MediaTypes; +(function (MediaTypes) { + MediaTypes["ApplicationJson"] = "application/json"; +})(MediaTypes = exports.MediaTypes || (exports.MediaTypes = {})); +/** + * Returns the proxy URL, depending upon the supplied url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ +function getProxyUrl(serverUrl) { + const proxyUrl = pm.getProxyUrl(new URL(serverUrl)); + return proxyUrl ? proxyUrl.href : ''; +} +exports.getProxyUrl = getProxyUrl; +const HttpRedirectCodes = [ + HttpCodes.MovedPermanently, + HttpCodes.ResourceMoved, + HttpCodes.SeeOther, + HttpCodes.TemporaryRedirect, + HttpCodes.PermanentRedirect +]; +const HttpResponseRetryCodes = [ + HttpCodes.BadGateway, + HttpCodes.ServiceUnavailable, + HttpCodes.GatewayTimeout +]; +const RetryableHttpVerbs = ['OPTIONS', 'GET', 'DELETE', 'HEAD']; +const ExponentialBackoffCeiling = 10; +const ExponentialBackoffTimeSlice = 5; +class HttpClientError extends Error { + constructor(message, statusCode) { + super(message); + this.name = 'HttpClientError'; + this.statusCode = statusCode; + Object.setPrototypeOf(this, HttpClientError.prototype); + } +} +exports.HttpClientError = HttpClientError; +class HttpClientResponse { + constructor(message) { + this.message = message; + } + readBody() { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () { + let output = Buffer.alloc(0); + this.message.on('data', (chunk) => { + output = Buffer.concat([output, chunk]); + }); + this.message.on('end', () => { + resolve(output.toString()); + }); + })); + }); + } +} +exports.HttpClientResponse = HttpClientResponse; +function isHttps(requestUrl) { + const parsedUrl = new URL(requestUrl); + return parsedUrl.protocol === 'https:'; +} +exports.isHttps = isHttps; +class HttpClient { + constructor(userAgent, handlers, requestOptions) { + this._ignoreSslError = false; + this._allowRedirects = true; + this._allowRedirectDowngrade = false; + this._maxRedirects = 50; + this._allowRetries = false; + this._maxRetries = 1; + this._keepAlive = false; + this._disposed = false; + this.userAgent = userAgent; + this.handlers = handlers || []; + this.requestOptions = requestOptions; + if (requestOptions) { + if (requestOptions.ignoreSslError != null) { + this._ignoreSslError = requestOptions.ignoreSslError; + } + this._socketTimeout = requestOptions.socketTimeout; + if (requestOptions.allowRedirects != null) { + this._allowRedirects = requestOptions.allowRedirects; + } + if (requestOptions.allowRedirectDowngrade != null) { + this._allowRedirectDowngrade = requestOptions.allowRedirectDowngrade; + } + if (requestOptions.maxRedirects != null) { + this._maxRedirects = Math.max(requestOptions.maxRedirects, 0); + } + if (requestOptions.keepAlive != null) { + this._keepAlive = requestOptions.keepAlive; + } + if (requestOptions.allowRetries != null) { + this._allowRetries = requestOptions.allowRetries; + } + if (requestOptions.maxRetries != null) { + this._maxRetries = requestOptions.maxRetries; + } + } + } + options(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('OPTIONS', requestUrl, null, additionalHeaders || {}); + }); + } + get(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('GET', requestUrl, null, additionalHeaders || {}); + }); + } + del(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('DELETE', requestUrl, null, additionalHeaders || {}); + }); + } + post(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('POST', requestUrl, data, additionalHeaders || {}); + }); + } + patch(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PATCH', requestUrl, data, additionalHeaders || {}); + }); + } + put(requestUrl, data, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('PUT', requestUrl, data, additionalHeaders || {}); + }); + } + head(requestUrl, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request('HEAD', requestUrl, null, additionalHeaders || {}); + }); + } + sendStream(verb, requestUrl, stream, additionalHeaders) { + return __awaiter(this, void 0, void 0, function* () { + return this.request(verb, requestUrl, stream, additionalHeaders); + }); + } + /** + * Gets a typed object from an endpoint + * Be aware that not found returns a null. Other errors (4xx, 5xx) reject the promise + */ + getJson(requestUrl, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + const res = yield this.get(requestUrl, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + postJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.post(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + putJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.put(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + patchJson(requestUrl, obj, additionalHeaders = {}) { + return __awaiter(this, void 0, void 0, function* () { + const data = JSON.stringify(obj, null, 2); + additionalHeaders[Headers.Accept] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.Accept, MediaTypes.ApplicationJson); + additionalHeaders[Headers.ContentType] = this._getExistingOrDefaultHeader(additionalHeaders, Headers.ContentType, MediaTypes.ApplicationJson); + const res = yield this.patch(requestUrl, data, additionalHeaders); + return this._processResponse(res, this.requestOptions); + }); + } + /** + * Makes a raw http request. + * All other methods such as get, post, patch, and request ultimately call this. + * Prefer get, del, post and patch + */ + request(verb, requestUrl, data, headers) { + return __awaiter(this, void 0, void 0, function* () { + if (this._disposed) { + throw new Error('Client has already been disposed.'); + } + const parsedUrl = new URL(requestUrl); + let info = this._prepareRequest(verb, parsedUrl, headers); + // Only perform retries on reads since writes may not be idempotent. + const maxTries = this._allowRetries && RetryableHttpVerbs.includes(verb) + ? this._maxRetries + 1 + : 1; + let numTries = 0; + let response; + do { + response = yield this.requestRaw(info, data); + // Check if it's an authentication challenge + if (response && + response.message && + response.message.statusCode === HttpCodes.Unauthorized) { + let authenticationHandler; + for (const handler of this.handlers) { + if (handler.canHandleAuthentication(response)) { + authenticationHandler = handler; + break; + } + } + if (authenticationHandler) { + return authenticationHandler.handleAuthentication(this, info, data); + } + else { + // We have received an unauthorized response but have no handlers to handle it. + // Let the response return to the caller. + return response; + } + } + let redirectsRemaining = this._maxRedirects; + while (response.message.statusCode && + HttpRedirectCodes.includes(response.message.statusCode) && + this._allowRedirects && + redirectsRemaining > 0) { + const redirectUrl = response.message.headers['location']; + if (!redirectUrl) { + // if there's no location to redirect to, we won't + break; + } + const parsedRedirectUrl = new URL(redirectUrl); + if (parsedUrl.protocol === 'https:' && + parsedUrl.protocol !== parsedRedirectUrl.protocol && + !this._allowRedirectDowngrade) { + throw new Error('Redirect from HTTPS to HTTP protocol. This downgrade is not allowed for security reasons. If you want to allow this behavior, set the allowRedirectDowngrade option to true.'); + } + // we need to finish reading the response before reassigning response + // which will leak the open socket. + yield response.readBody(); + // strip authorization header if redirected to a different hostname + if (parsedRedirectUrl.hostname !== parsedUrl.hostname) { + for (const header in headers) { + // header names are case insensitive + if (header.toLowerCase() === 'authorization') { + delete headers[header]; + } + } + } + // let's make the request with the new redirectUrl + info = this._prepareRequest(verb, parsedRedirectUrl, headers); + response = yield this.requestRaw(info, data); + redirectsRemaining--; + } + if (!response.message.statusCode || + !HttpResponseRetryCodes.includes(response.message.statusCode)) { + // If not a retry code, return immediately instead of retrying + return response; + } + numTries += 1; + if (numTries < maxTries) { + yield response.readBody(); + yield this._performExponentialBackoff(numTries); + } + } while (numTries < maxTries); + return response; + }); + } + /** + * Needs to be called if keepAlive is set to true in request options. + */ + dispose() { + if (this._agent) { + this._agent.destroy(); + } + this._disposed = true; + } + /** + * Raw request. + * @param info + * @param data + */ + requestRaw(info, data) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => { + function callbackForResult(err, res) { + if (err) { + reject(err); + } + else if (!res) { + // If `err` is not passed, then `res` must be passed. + reject(new Error('Unknown error')); + } + else { + resolve(res); + } + } + this.requestRawWithCallback(info, data, callbackForResult); + }); + }); + } + /** + * Raw request with callback. + * @param info + * @param data + * @param onResult + */ + requestRawWithCallback(info, data, onResult) { + if (typeof data === 'string') { + if (!info.options.headers) { + info.options.headers = {}; + } + info.options.headers['Content-Length'] = Buffer.byteLength(data, 'utf8'); + } + let callbackCalled = false; + function handleResult(err, res) { + if (!callbackCalled) { + callbackCalled = true; + onResult(err, res); + } + } + const req = info.httpModule.request(info.options, (msg) => { + const res = new HttpClientResponse(msg); + handleResult(undefined, res); + }); + let socket; + req.on('socket', sock => { + socket = sock; + }); + // If we ever get disconnected, we want the socket to timeout eventually + req.setTimeout(this._socketTimeout || 3 * 60000, () => { + if (socket) { + socket.end(); + } + handleResult(new Error(`Request timeout: ${info.options.path}`)); + }); + req.on('error', function (err) { + // err has statusCode property + // res should have headers + handleResult(err); + }); + if (data && typeof data === 'string') { + req.write(data, 'utf8'); + } + if (data && typeof data !== 'string') { + data.on('close', function () { + req.end(); + }); + data.pipe(req); + } + else { + req.end(); + } + } + /** + * Gets an http agent. This function is useful when you need an http agent that handles + * routing through a proxy server - depending upon the url and proxy environment variables. + * @param serverUrl The server URL where the request will be sent. For example, https://api.github.com + */ + getAgent(serverUrl) { + const parsedUrl = new URL(serverUrl); + return this._getAgent(parsedUrl); + } + _prepareRequest(method, requestUrl, headers) { + const info = {}; + info.parsedUrl = requestUrl; + const usingSsl = info.parsedUrl.protocol === 'https:'; + info.httpModule = usingSsl ? https : http; + const defaultPort = usingSsl ? 443 : 80; + info.options = {}; + info.options.host = info.parsedUrl.hostname; + info.options.port = info.parsedUrl.port + ? parseInt(info.parsedUrl.port) + : defaultPort; + info.options.path = + (info.parsedUrl.pathname || '') + (info.parsedUrl.search || ''); + info.options.method = method; + info.options.headers = this._mergeHeaders(headers); + if (this.userAgent != null) { + info.options.headers['user-agent'] = this.userAgent; + } + info.options.agent = this._getAgent(info.parsedUrl); + // gives handlers an opportunity to participate + if (this.handlers) { + for (const handler of this.handlers) { + handler.prepareRequest(info.options); + } + } + return info; + } + _mergeHeaders(headers) { + if (this.requestOptions && this.requestOptions.headers) { + return Object.assign({}, lowercaseKeys(this.requestOptions.headers), lowercaseKeys(headers || {})); + } + return lowercaseKeys(headers || {}); + } + _getExistingOrDefaultHeader(additionalHeaders, header, _default) { + let clientHeader; + if (this.requestOptions && this.requestOptions.headers) { + clientHeader = lowercaseKeys(this.requestOptions.headers)[header]; + } + return additionalHeaders[header] || clientHeader || _default; + } + _getAgent(parsedUrl) { + let agent; + const proxyUrl = pm.getProxyUrl(parsedUrl); + const useProxy = proxyUrl && proxyUrl.hostname; + if (this._keepAlive && useProxy) { + agent = this._proxyAgent; + } + if (this._keepAlive && !useProxy) { + agent = this._agent; + } + // if agent is already assigned use that agent. + if (agent) { + return agent; + } + const usingSsl = parsedUrl.protocol === 'https:'; + let maxSockets = 100; + if (this.requestOptions) { + maxSockets = this.requestOptions.maxSockets || http.globalAgent.maxSockets; + } + // This is `useProxy` again, but we need to check `proxyURl` directly for TypeScripts's flow analysis. + if (proxyUrl && proxyUrl.hostname) { + const agentOptions = { + maxSockets, + keepAlive: this._keepAlive, + proxy: Object.assign(Object.assign({}, ((proxyUrl.username || proxyUrl.password) && { + proxyAuth: `${proxyUrl.username}:${proxyUrl.password}` + })), { host: proxyUrl.hostname, port: proxyUrl.port }) + }; + let tunnelAgent; + const overHttps = proxyUrl.protocol === 'https:'; + if (usingSsl) { + tunnelAgent = overHttps ? tunnel.httpsOverHttps : tunnel.httpsOverHttp; + } + else { + tunnelAgent = overHttps ? tunnel.httpOverHttps : tunnel.httpOverHttp; + } + agent = tunnelAgent(agentOptions); + this._proxyAgent = agent; + } + // if reusing agent across request and tunneling agent isn't assigned create a new agent + if (this._keepAlive && !agent) { + const options = { keepAlive: this._keepAlive, maxSockets }; + agent = usingSsl ? new https.Agent(options) : new http.Agent(options); + this._agent = agent; + } + // if not using private agent and tunnel agent isn't setup then use global agent + if (!agent) { + agent = usingSsl ? https.globalAgent : http.globalAgent; + } + if (usingSsl && this._ignoreSslError) { + // we don't want to set NODE_TLS_REJECT_UNAUTHORIZED=0 since that will affect request for entire process + // http.RequestOptions doesn't expose a way to modify RequestOptions.agent.options + // we have to cast it to any and change it directly + agent.options = Object.assign(agent.options || {}, { + rejectUnauthorized: false + }); + } + return agent; + } + _performExponentialBackoff(retryNumber) { + return __awaiter(this, void 0, void 0, function* () { + retryNumber = Math.min(ExponentialBackoffCeiling, retryNumber); + const ms = ExponentialBackoffTimeSlice * Math.pow(2, retryNumber); + return new Promise(resolve => setTimeout(() => resolve(), ms)); + }); + } + _processResponse(res, options) { + return __awaiter(this, void 0, void 0, function* () { + return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () { + const statusCode = res.message.statusCode || 0; + const response = { + statusCode, + result: null, + headers: {} + }; + // not found leads to null obj returned + if (statusCode === HttpCodes.NotFound) { + resolve(response); + } + // get the result from the body + function dateTimeDeserializer(key, value) { + if (typeof value === 'string') { + const a = new Date(value); + if (!isNaN(a.valueOf())) { + return a; + } + } + return value; + } + let obj; + let contents; + try { + contents = yield res.readBody(); + if (contents && contents.length > 0) { + if (options && options.deserializeDates) { + obj = JSON.parse(contents, dateTimeDeserializer); + } + else { + obj = JSON.parse(contents); + } + response.result = obj; + } + response.headers = res.message.headers; + } + catch (err) { + // Invalid resource (contents not json); leaving result obj null + } + // note that 3xx redirects are handled by the http layer. + if (statusCode > 299) { + let msg; + // if exception/error in body, attempt to get better error + if (obj && obj.message) { + msg = obj.message; + } + else if (contents && contents.length > 0) { + // it may be the case that the exception is in the body message as string + msg = contents; + } + else { + msg = `Failed request: (${statusCode})`; + } + const err = new HttpClientError(msg, statusCode); + err.result = response.result; + reject(err); + } + else { + resolve(response); + } + })); + }); + } +} +exports.HttpClient = HttpClient; +const lowercaseKeys = (obj) => Object.keys(obj).reduce((c, k) => ((c[k.toLowerCase()] = obj[k]), c), {}); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 65354: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.checkBypass = exports.getProxyUrl = void 0; +function getProxyUrl(reqUrl) { + const usingSsl = reqUrl.protocol === 'https:'; + if (checkBypass(reqUrl)) { + return undefined; + } + const proxyVar = (() => { + if (usingSsl) { + return process.env['https_proxy'] || process.env['HTTPS_PROXY']; + } + else { + return process.env['http_proxy'] || process.env['HTTP_PROXY']; + } + })(); + if (proxyVar) { + return new URL(proxyVar); + } + else { + return undefined; + } +} +exports.getProxyUrl = getProxyUrl; +function checkBypass(reqUrl) { + if (!reqUrl.hostname) { + return false; + } + const noProxy = process.env['no_proxy'] || process.env['NO_PROXY'] || ''; + if (!noProxy) { + return false; + } + // Determine the request port + let reqPort; + if (reqUrl.port) { + reqPort = Number(reqUrl.port); + } + else if (reqUrl.protocol === 'http:') { + reqPort = 80; + } + else if (reqUrl.protocol === 'https:') { + reqPort = 443; + } + // Format the request hostname and hostname with port + const upperReqHosts = [reqUrl.hostname.toUpperCase()]; + if (typeof reqPort === 'number') { + upperReqHosts.push(`${upperReqHosts[0]}:${reqPort}`); + } + // Compare request host against noproxy + for (const upperNoProxyItem of noProxy + .split(',') + .map(x => x.trim().toUpperCase()) + .filter(x => x)) { + if (upperReqHosts.some(x => x === upperNoProxyItem)) { + return true; + } + } + return false; +} +exports.checkBypass = checkBypass; +//# sourceMappingURL=proxy.js.map + +/***/ }), + +/***/ 70327: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const REGEX_IS_INSTALLATION_LEGACY = /^v1\./; +const REGEX_IS_INSTALLATION = /^ghs_/; +const REGEX_IS_USER_TO_SERVER = /^ghu_/; +async function auth(token) { + const isApp = token.split(/\./).length === 3; + const isInstallation = REGEX_IS_INSTALLATION_LEGACY.test(token) || REGEX_IS_INSTALLATION.test(token); + const isUserToServer = REGEX_IS_USER_TO_SERVER.test(token); + const tokenType = isApp ? "app" : isInstallation ? "installation" : isUserToServer ? "user-to-server" : "oauth"; + return { + type: "token", + token: token, + tokenType + }; +} + +/** + * Prefix token for usage in the Authorization header + * + * @param token OAuth token or JSON Web Token + */ +function withAuthorizationPrefix(token) { + if (token.split(/\./).length === 3) { + return `bearer ${token}`; + } + + return `token ${token}`; +} + +async function hook(token, request, route, parameters) { + const endpoint = request.endpoint.merge(route, parameters); + endpoint.headers.authorization = withAuthorizationPrefix(token); + return request(endpoint); +} + +const createTokenAuth = function createTokenAuth(token) { + if (!token) { + throw new Error("[@octokit/auth-token] No token passed to createTokenAuth"); + } + + if (typeof token !== "string") { + throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string"); + } + + token = token.replace(/^(token|bearer) +/i, ""); + return Object.assign(auth.bind(null, token), { + hook: hook.bind(null, token) + }); +}; + +exports.createTokenAuth = createTokenAuth; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 43401: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var universalUserAgent = __nccwpck_require__(28933); +var beforeAfterHook = __nccwpck_require__(60214); +var request = __nccwpck_require__(88299); +var graphql = __nccwpck_require__(10565); +var authToken = __nccwpck_require__(70327); + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +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; +} + +const VERSION = "3.6.0"; + +const _excluded = ["authStrategy"]; +class Octokit { + constructor(options = {}) { + const hook = new beforeAfterHook.Collection(); + const requestDefaults = { + baseUrl: request.request.endpoint.DEFAULTS.baseUrl, + headers: {}, + request: Object.assign({}, options.request, { + // @ts-ignore internal usage only, no need to type + hook: hook.bind(null, "request") + }), + mediaType: { + previews: [], + format: "" + } + }; // prepend default user agent with `options.userAgent` if set + + requestDefaults.headers["user-agent"] = [options.userAgent, `octokit-core.js/${VERSION} ${universalUserAgent.getUserAgent()}`].filter(Boolean).join(" "); + + if (options.baseUrl) { + requestDefaults.baseUrl = options.baseUrl; + } + + if (options.previews) { + requestDefaults.mediaType.previews = options.previews; + } + + if (options.timeZone) { + requestDefaults.headers["time-zone"] = options.timeZone; + } + + this.request = request.request.defaults(requestDefaults); + this.graphql = graphql.withCustomRequest(this.request).defaults(requestDefaults); + this.log = Object.assign({ + debug: () => {}, + info: () => {}, + warn: console.warn.bind(console), + error: console.error.bind(console) + }, options.log); + this.hook = hook; // (1) If neither `options.authStrategy` nor `options.auth` are set, the `octokit` instance + // is unauthenticated. The `this.auth()` method is a no-op and no request hook is registered. + // (2) If only `options.auth` is set, use the default token authentication strategy. + // (3) If `options.authStrategy` is set then use it and pass in `options.auth`. Always pass own request as many strategies accept a custom request instance. + // TODO: type `options.auth` based on `options.authStrategy`. + + if (!options.authStrategy) { + if (!options.auth) { + // (1) + this.auth = async () => ({ + type: "unauthenticated" + }); + } else { + // (2) + const auth = authToken.createTokenAuth(options.auth); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } + } else { + const { + authStrategy + } = options, + otherOptions = _objectWithoutProperties(options, _excluded); + + const auth = authStrategy(Object.assign({ + request: this.request, + log: this.log, + // we pass the current octokit instance as well as its constructor options + // to allow for authentication strategies that return a new octokit instance + // that shares the same internal state as the current one. The original + // requirement for this was the "event-octokit" authentication strategy + // of https://github.com/probot/octokit-auth-probot. + octokit: this, + octokitOptions: otherOptions + }, options.auth)); // @ts-ignore ¯\_(ツ)_/¯ + + hook.wrap("request", auth.hook); + this.auth = auth; + } // apply plugins + // https://stackoverflow.com/a/16345172 + + + const classConstructor = this.constructor; + classConstructor.plugins.forEach(plugin => { + Object.assign(this, plugin(this, options)); + }); + } + + static defaults(defaults) { + const OctokitWithDefaults = class extends this { + constructor(...args) { + const options = args[0] || {}; + + if (typeof defaults === "function") { + super(defaults(options)); + return; + } + + super(Object.assign({}, defaults, options, options.userAgent && defaults.userAgent ? { + userAgent: `${options.userAgent} ${defaults.userAgent}` + } : null)); + } + + }; + return OctokitWithDefaults; + } + /** + * Attach a plugin (or many) to your Octokit instance. + * + * @example + * const API = Octokit.plugin(plugin1, plugin2, plugin3, ...) + */ + + + static plugin(...newPlugins) { + var _a; + + const currentPlugins = this.plugins; + const NewOctokit = (_a = class extends this {}, _a.plugins = currentPlugins.concat(newPlugins.filter(plugin => !currentPlugins.includes(plugin))), _a); + return NewOctokit; + } + +} +Octokit.VERSION = VERSION; +Octokit.plugins = []; + +exports.Octokit = Octokit; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 84892: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var isPlainObject = __nccwpck_require__(74624); +var universalUserAgent = __nccwpck_require__(28933); + +function lowercaseKeys(object) { + if (!object) { + return {}; + } + + return Object.keys(object).reduce((newObj, key) => { + newObj[key.toLowerCase()] = object[key]; + return newObj; + }, {}); +} + +function mergeDeep(defaults, options) { + const result = Object.assign({}, defaults); + Object.keys(options).forEach(key => { + if (isPlainObject.isPlainObject(options[key])) { + if (!(key in defaults)) Object.assign(result, { + [key]: options[key] + });else result[key] = mergeDeep(defaults[key], options[key]); + } else { + Object.assign(result, { + [key]: options[key] + }); + } + }); + return result; +} + +function removeUndefinedProperties(obj) { + for (const key in obj) { + if (obj[key] === undefined) { + delete obj[key]; + } + } + + return obj; +} + +function merge(defaults, route, options) { + if (typeof route === "string") { + let [method, url] = route.split(" "); + options = Object.assign(url ? { + method, + url + } : { + url: method + }, options); + } else { + options = Object.assign({}, route); + } // lowercase header names before merging with defaults to avoid duplicates + + + options.headers = lowercaseKeys(options.headers); // remove properties with undefined values before merging + + removeUndefinedProperties(options); + removeUndefinedProperties(options.headers); + const mergedOptions = mergeDeep(defaults || {}, options); // mediaType.previews arrays are merged, instead of overwritten + + if (defaults && defaults.mediaType.previews.length) { + mergedOptions.mediaType.previews = defaults.mediaType.previews.filter(preview => !mergedOptions.mediaType.previews.includes(preview)).concat(mergedOptions.mediaType.previews); + } + + mergedOptions.mediaType.previews = mergedOptions.mediaType.previews.map(preview => preview.replace(/-preview/, "")); + return mergedOptions; +} + +function addQueryParameters(url, parameters) { + const separator = /\?/.test(url) ? "&" : "?"; + const names = Object.keys(parameters); + + if (names.length === 0) { + return url; + } + + return url + separator + names.map(name => { + if (name === "q") { + return "q=" + parameters.q.split("+").map(encodeURIComponent).join("+"); + } + + return `${name}=${encodeURIComponent(parameters[name])}`; + }).join("&"); +} + +const urlVariableRegex = /\{[^}]+\}/g; + +function removeNonChars(variableName) { + return variableName.replace(/^\W+|\W+$/g, "").split(/,/); +} + +function extractUrlVariableNames(url) { + const matches = url.match(urlVariableRegex); + + if (!matches) { + return []; + } + + return matches.map(removeNonChars).reduce((a, b) => a.concat(b), []); +} + +function omit(object, keysToOmit) { + return Object.keys(object).filter(option => !keysToOmit.includes(option)).reduce((obj, key) => { + obj[key] = object[key]; + return obj; + }, {}); +} + +// Based on https://github.com/bramstein/url-template, licensed under BSD +// TODO: create separate package. +// +// Copyright (c) 2012-2014, Bram Stein +// All rights reserved. +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// 1. Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// 2. 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. +// 3. The name of the author may not be used to endorse or promote products +// derived from this software without specific prior written permission. +// THIS SOFTWARE IS PROVIDED BY THE AUTHOR "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 OWNER 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. + +/* istanbul ignore file */ +function encodeReserved(str) { + return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) { + if (!/%[0-9A-Fa-f]/.test(part)) { + part = encodeURI(part).replace(/%5B/g, "[").replace(/%5D/g, "]"); + } + + return part; + }).join(""); +} + +function encodeUnreserved(str) { + return encodeURIComponent(str).replace(/[!'()*]/g, function (c) { + return "%" + c.charCodeAt(0).toString(16).toUpperCase(); + }); +} + +function encodeValue(operator, value, key) { + value = operator === "+" || operator === "#" ? encodeReserved(value) : encodeUnreserved(value); + + if (key) { + return encodeUnreserved(key) + "=" + value; + } else { + return value; + } +} + +function isDefined(value) { + return value !== undefined && value !== null; +} + +function isKeyOperator(operator) { + return operator === ";" || operator === "&" || operator === "?"; +} + +function getValues(context, operator, key, modifier) { + var value = context[key], + result = []; + + if (isDefined(value) && value !== "") { + if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") { + value = value.toString(); + + if (modifier && modifier !== "*") { + value = value.substring(0, parseInt(modifier, 10)); + } + + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + } else { + if (modifier === "*") { + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : "")); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + result.push(encodeValue(operator, value[k], k)); + } + }); + } + } else { + const tmp = []; + + if (Array.isArray(value)) { + value.filter(isDefined).forEach(function (value) { + tmp.push(encodeValue(operator, value)); + }); + } else { + Object.keys(value).forEach(function (k) { + if (isDefined(value[k])) { + tmp.push(encodeUnreserved(k)); + tmp.push(encodeValue(operator, value[k].toString())); + } + }); + } + + if (isKeyOperator(operator)) { + result.push(encodeUnreserved(key) + "=" + tmp.join(",")); + } else if (tmp.length !== 0) { + result.push(tmp.join(",")); + } + } + } + } else { + if (operator === ";") { + if (isDefined(value)) { + result.push(encodeUnreserved(key)); + } + } else if (value === "" && (operator === "&" || operator === "?")) { + result.push(encodeUnreserved(key) + "="); + } else if (value === "") { + result.push(""); + } + } + + return result; +} + +function parseUrl(template) { + return { + expand: expand.bind(null, template) + }; +} + +function expand(template, context) { + var operators = ["+", "#", ".", "/", ";", "?", "&"]; + return template.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g, function (_, expression, literal) { + if (expression) { + let operator = ""; + const values = []; + + if (operators.indexOf(expression.charAt(0)) !== -1) { + operator = expression.charAt(0); + expression = expression.substr(1); + } + + expression.split(/,/g).forEach(function (variable) { + var tmp = /([^:\*]*)(?::(\d+)|(\*))?/.exec(variable); + values.push(getValues(context, operator, tmp[1], tmp[2] || tmp[3])); + }); + + if (operator && operator !== "+") { + var separator = ","; + + if (operator === "?") { + separator = "&"; + } else if (operator !== "#") { + separator = operator; + } + + return (values.length !== 0 ? operator : "") + values.join(separator); + } else { + return values.join(","); + } + } else { + return encodeReserved(literal); + } + }); +} + +function parse(options) { + // https://fetch.spec.whatwg.org/#methods + let method = options.method.toUpperCase(); // replace :varname with {varname} to make it RFC 6570 compatible + + let url = (options.url || "/").replace(/:([a-z]\w+)/g, "{$1}"); + let headers = Object.assign({}, options.headers); + let body; + let parameters = omit(options, ["method", "baseUrl", "url", "headers", "request", "mediaType"]); // extract variable names from URL to calculate remaining variables later + + const urlVariableNames = extractUrlVariableNames(url); + url = parseUrl(url).expand(parameters); + + if (!/^http/.test(url)) { + url = options.baseUrl + url; + } + + const omittedParameters = Object.keys(options).filter(option => urlVariableNames.includes(option)).concat("baseUrl"); + const remainingParameters = omit(parameters, omittedParameters); + const isBinaryRequest = /application\/octet-stream/i.test(headers.accept); + + if (!isBinaryRequest) { + if (options.mediaType.format) { + // e.g. application/vnd.github.v3+json => application/vnd.github.v3.raw + headers.accept = headers.accept.split(/,/).map(preview => preview.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/, `application/vnd$1$2.${options.mediaType.format}`)).join(","); + } + + if (options.mediaType.previews.length) { + const previewsFromAcceptHeader = headers.accept.match(/[\w-]+(?=-preview)/g) || []; + headers.accept = previewsFromAcceptHeader.concat(options.mediaType.previews).map(preview => { + const format = options.mediaType.format ? `.${options.mediaType.format}` : "+json"; + return `application/vnd.github.${preview}-preview${format}`; + }).join(","); + } + } // for GET/HEAD requests, set URL query parameters from remaining parameters + // for PATCH/POST/PUT/DELETE requests, set request body from remaining parameters + + + if (["GET", "HEAD"].includes(method)) { + url = addQueryParameters(url, remainingParameters); + } else { + if ("data" in remainingParameters) { + body = remainingParameters.data; + } else { + if (Object.keys(remainingParameters).length) { + body = remainingParameters; + } else { + headers["content-length"] = 0; + } + } + } // default content-type for JSON if body is set + + + if (!headers["content-type"] && typeof body !== "undefined") { + headers["content-type"] = "application/json; charset=utf-8"; + } // GitHub expects 'content-length: 0' header for PUT/PATCH requests without body. + // fetch does not allow to set `content-length` header, but we can set body to an empty string + + + if (["PATCH", "PUT"].includes(method) && typeof body === "undefined") { + body = ""; + } // Only return body/request keys if present + + + return Object.assign({ + method, + url, + headers + }, typeof body !== "undefined" ? { + body + } : null, options.request ? { + request: options.request + } : null); +} + +function endpointWithDefaults(defaults, route, options) { + return parse(merge(defaults, route, options)); +} + +function withDefaults(oldDefaults, newDefaults) { + const DEFAULTS = merge(oldDefaults, newDefaults); + const endpoint = endpointWithDefaults.bind(null, DEFAULTS); + return Object.assign(endpoint, { + DEFAULTS, + defaults: withDefaults.bind(null, DEFAULTS), + merge: merge.bind(null, DEFAULTS), + parse + }); +} + +const VERSION = "6.0.12"; + +const userAgent = `octokit-endpoint.js/${VERSION} ${universalUserAgent.getUserAgent()}`; // DEFAULTS has all properties set that EndpointOptions has, except url. +// So we use RequestParameters and add method as additional required property. + +const DEFAULTS = { + method: "GET", + baseUrl: "https://api.github.com", + headers: { + accept: "application/vnd.github.v3+json", + "user-agent": userAgent + }, + mediaType: { + format: "", + previews: [] + } +}; + +const endpoint = withDefaults(null, DEFAULTS); + +exports.endpoint = endpoint; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 10565: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +var request = __nccwpck_require__(88299); +var universalUserAgent = __nccwpck_require__(28933); + +const VERSION = "4.8.0"; + +function _buildMessageForResponseErrors(data) { + return `Request failed due to following response errors:\n` + data.errors.map(e => ` - ${e.message}`).join("\n"); +} + +class GraphqlResponseError extends Error { + constructor(request, headers, response) { + super(_buildMessageForResponseErrors(response)); + this.request = request; + this.headers = headers; + this.response = response; + this.name = "GraphqlResponseError"; // Expose the errors and response data in their shorthand properties. + + this.errors = response.errors; + this.data = response.data; // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + } + +} + +const NON_VARIABLE_OPTIONS = ["method", "baseUrl", "url", "headers", "request", "query", "mediaType"]; +const FORBIDDEN_VARIABLE_OPTIONS = ["query", "method", "url"]; +const GHES_V3_SUFFIX_REGEX = /\/api\/v3\/?$/; +function graphql(request, query, options) { + if (options) { + if (typeof query === "string" && "query" in options) { + return Promise.reject(new Error(`[@octokit/graphql] "query" cannot be used as variable name`)); + } + + for (const key in options) { + if (!FORBIDDEN_VARIABLE_OPTIONS.includes(key)) continue; + return Promise.reject(new Error(`[@octokit/graphql] "${key}" cannot be used as variable name`)); + } + } + + const parsedOptions = typeof query === "string" ? Object.assign({ + query + }, options) : query; + const requestOptions = Object.keys(parsedOptions).reduce((result, key) => { + if (NON_VARIABLE_OPTIONS.includes(key)) { + result[key] = parsedOptions[key]; + return result; + } + + if (!result.variables) { + result.variables = {}; + } + + result.variables[key] = parsedOptions[key]; + return result; + }, {}); // workaround for GitHub Enterprise baseUrl set with /api/v3 suffix + // https://github.com/octokit/auth-app.js/issues/111#issuecomment-657610451 + + const baseUrl = parsedOptions.baseUrl || request.endpoint.DEFAULTS.baseUrl; + + if (GHES_V3_SUFFIX_REGEX.test(baseUrl)) { + requestOptions.url = baseUrl.replace(GHES_V3_SUFFIX_REGEX, "/api/graphql"); + } + + return request(requestOptions).then(response => { + if (response.data.errors) { + const headers = {}; + + for (const key of Object.keys(response.headers)) { + headers[key] = response.headers[key]; + } + + throw new GraphqlResponseError(requestOptions, headers, response.data); + } + + return response.data.data; + }); +} + +function withDefaults(request$1, newDefaults) { + const newRequest = request$1.defaults(newDefaults); + + const newApi = (query, options) => { + return graphql(newRequest, query, options); + }; + + return Object.assign(newApi, { + defaults: withDefaults.bind(null, newRequest), + endpoint: request.request.endpoint + }); +} + +const graphql$1 = withDefaults(request.request, { + headers: { + "user-agent": `octokit-graphql.js/${VERSION} ${universalUserAgent.getUserAgent()}` + }, + method: "POST", + url: "/graphql" +}); +function withCustomRequest(customRequest) { + return withDefaults(customRequest, { + method: "POST", + url: "/graphql" + }); +} + +exports.GraphqlResponseError = GraphqlResponseError; +exports.graphql = graphql$1; +exports.withCustomRequest = withCustomRequest; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 13505: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +const VERSION = "2.21.3"; + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + enumerableOnly && (symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + })), keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = null != arguments[i] ? arguments[i] : {}; + i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { + _defineProperty(target, key, source[key]); + }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +/** + * Some “list” response that can be paginated have a different response structure + * + * They have a `total_count` key in the response (search also has `incomplete_results`, + * /installation/repositories also has `repository_selection`), as well as a key with + * the list of the items which name varies from endpoint to endpoint. + * + * Octokit normalizes these responses so that paginated results are always returned following + * the same structure. One challenge is that if the list response has only one page, no Link + * header is provided, so this header alone is not sufficient to check wether a response is + * paginated or not. + * + * We check if a "total_count" key is present in the response data, but also make sure that + * a "url" property is not, as the "Get the combined status for a specific ref" endpoint would + * otherwise match: https://developer.github.com/v3/repos/statuses/#get-the-combined-status-for-a-specific-ref + */ +function normalizePaginatedListResponse(response) { + // endpoints can respond with 204 if repository is empty + if (!response.data) { + return _objectSpread2(_objectSpread2({}, response), {}, { + data: [] + }); + } + + const responseNeedsNormalization = "total_count" in response.data && !("url" in response.data); + if (!responseNeedsNormalization) return response; // keep the additional properties intact as there is currently no other way + // to retrieve the same information. + + const incompleteResults = response.data.incomplete_results; + const repositorySelection = response.data.repository_selection; + const totalCount = response.data.total_count; + delete response.data.incomplete_results; + delete response.data.repository_selection; + delete response.data.total_count; + const namespaceKey = Object.keys(response.data)[0]; + const data = response.data[namespaceKey]; + response.data = data; + + if (typeof incompleteResults !== "undefined") { + response.data.incomplete_results = incompleteResults; + } + + if (typeof repositorySelection !== "undefined") { + response.data.repository_selection = repositorySelection; + } + + response.data.total_count = totalCount; + return response; +} + +function iterator(octokit, route, parameters) { + const options = typeof route === "function" ? route.endpoint(parameters) : octokit.request.endpoint(route, parameters); + const requestMethod = typeof route === "function" ? route : octokit.request; + const method = options.method; + const headers = options.headers; + let url = options.url; + return { + [Symbol.asyncIterator]: () => ({ + async next() { + if (!url) return { + done: true + }; + + try { + const response = await requestMethod({ + method, + url, + headers + }); + const normalizedResponse = normalizePaginatedListResponse(response); // `response.headers.link` format: + // '; rel="next", ; rel="last"' + // sets `url` to undefined if "next" URL is not present or `link` header is not set + + url = ((normalizedResponse.headers.link || "").match(/<([^>]+)>;\s*rel="next"/) || [])[1]; + return { + value: normalizedResponse + }; + } catch (error) { + if (error.status !== 409) throw error; + url = ""; + return { + value: { + status: 200, + headers: {}, + data: [] + } + }; + } + } + + }) + }; +} + +function paginate(octokit, route, parameters, mapFn) { + if (typeof parameters === "function") { + mapFn = parameters; + parameters = undefined; + } + + return gather(octokit, [], iterator(octokit, route, parameters)[Symbol.asyncIterator](), mapFn); +} + +function gather(octokit, results, iterator, mapFn) { + return iterator.next().then(result => { + if (result.done) { + return results; + } + + let earlyExit = false; + + function done() { + earlyExit = true; + } + + results = results.concat(mapFn ? mapFn(result.value, done) : result.value.data); + + if (earlyExit) { + return results; + } + + return gather(octokit, results, iterator, mapFn); + }); +} + +const composePaginateRest = Object.assign(paginate, { + iterator +}); + +const paginatingEndpoints = ["GET /app/hook/deliveries", "GET /app/installations", "GET /applications/grants", "GET /authorizations", "GET /enterprises/{enterprise}/actions/permissions/organizations", "GET /enterprises/{enterprise}/actions/runner-groups", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/organizations", "GET /enterprises/{enterprise}/actions/runner-groups/{runner_group_id}/runners", "GET /enterprises/{enterprise}/actions/runners", "GET /enterprises/{enterprise}/audit-log", "GET /enterprises/{enterprise}/secret-scanning/alerts", "GET /enterprises/{enterprise}/settings/billing/advanced-security", "GET /events", "GET /gists", "GET /gists/public", "GET /gists/starred", "GET /gists/{gist_id}/comments", "GET /gists/{gist_id}/commits", "GET /gists/{gist_id}/forks", "GET /installation/repositories", "GET /issues", "GET /licenses", "GET /marketplace_listing/plans", "GET /marketplace_listing/plans/{plan_id}/accounts", "GET /marketplace_listing/stubbed/plans", "GET /marketplace_listing/stubbed/plans/{plan_id}/accounts", "GET /networks/{owner}/{repo}/events", "GET /notifications", "GET /organizations", "GET /orgs/{org}/actions/cache/usage-by-repository", "GET /orgs/{org}/actions/permissions/repositories", "GET /orgs/{org}/actions/runner-groups", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories", "GET /orgs/{org}/actions/runner-groups/{runner_group_id}/runners", "GET /orgs/{org}/actions/runners", "GET /orgs/{org}/actions/secrets", "GET /orgs/{org}/actions/secrets/{secret_name}/repositories", "GET /orgs/{org}/audit-log", "GET /orgs/{org}/blocks", "GET /orgs/{org}/code-scanning/alerts", "GET /orgs/{org}/codespaces", "GET /orgs/{org}/credential-authorizations", "GET /orgs/{org}/dependabot/secrets", "GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories", "GET /orgs/{org}/events", "GET /orgs/{org}/external-groups", "GET /orgs/{org}/failed_invitations", "GET /orgs/{org}/hooks", "GET /orgs/{org}/hooks/{hook_id}/deliveries", "GET /orgs/{org}/installations", "GET /orgs/{org}/invitations", "GET /orgs/{org}/invitations/{invitation_id}/teams", "GET /orgs/{org}/issues", "GET /orgs/{org}/members", "GET /orgs/{org}/migrations", "GET /orgs/{org}/migrations/{migration_id}/repositories", "GET /orgs/{org}/outside_collaborators", "GET /orgs/{org}/packages", "GET /orgs/{org}/packages/{package_type}/{package_name}/versions", "GET /orgs/{org}/projects", "GET /orgs/{org}/public_members", "GET /orgs/{org}/repos", "GET /orgs/{org}/secret-scanning/alerts", "GET /orgs/{org}/settings/billing/advanced-security", "GET /orgs/{org}/team-sync/groups", "GET /orgs/{org}/teams", "GET /orgs/{org}/teams/{team_slug}/discussions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions", "GET /orgs/{org}/teams/{team_slug}/invitations", "GET /orgs/{org}/teams/{team_slug}/members", "GET /orgs/{org}/teams/{team_slug}/projects", "GET /orgs/{org}/teams/{team_slug}/repos", "GET /orgs/{org}/teams/{team_slug}/teams", "GET /projects/columns/{column_id}/cards", "GET /projects/{project_id}/collaborators", "GET /projects/{project_id}/columns", "GET /repos/{owner}/{repo}/actions/artifacts", "GET /repos/{owner}/{repo}/actions/caches", "GET /repos/{owner}/{repo}/actions/runners", "GET /repos/{owner}/{repo}/actions/runs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs", "GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs", "GET /repos/{owner}/{repo}/actions/secrets", "GET /repos/{owner}/{repo}/actions/workflows", "GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs", "GET /repos/{owner}/{repo}/assignees", "GET /repos/{owner}/{repo}/branches", "GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations", "GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs", "GET /repos/{owner}/{repo}/code-scanning/alerts", "GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", "GET /repos/{owner}/{repo}/code-scanning/analyses", "GET /repos/{owner}/{repo}/codespaces", "GET /repos/{owner}/{repo}/codespaces/devcontainers", "GET /repos/{owner}/{repo}/codespaces/secrets", "GET /repos/{owner}/{repo}/collaborators", "GET /repos/{owner}/{repo}/comments", "GET /repos/{owner}/{repo}/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/commits", "GET /repos/{owner}/{repo}/commits/{commit_sha}/comments", "GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls", "GET /repos/{owner}/{repo}/commits/{ref}/check-runs", "GET /repos/{owner}/{repo}/commits/{ref}/check-suites", "GET /repos/{owner}/{repo}/commits/{ref}/status", "GET /repos/{owner}/{repo}/commits/{ref}/statuses", "GET /repos/{owner}/{repo}/contributors", "GET /repos/{owner}/{repo}/dependabot/secrets", "GET /repos/{owner}/{repo}/deployments", "GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses", "GET /repos/{owner}/{repo}/environments", "GET /repos/{owner}/{repo}/events", "GET /repos/{owner}/{repo}/forks", "GET /repos/{owner}/{repo}/git/matching-refs/{ref}", "GET /repos/{owner}/{repo}/hooks", "GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries", "GET /repos/{owner}/{repo}/invitations", "GET /repos/{owner}/{repo}/issues", "GET /repos/{owner}/{repo}/issues/comments", "GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/issues/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/comments", "GET /repos/{owner}/{repo}/issues/{issue_number}/events", "GET /repos/{owner}/{repo}/issues/{issue_number}/labels", "GET /repos/{owner}/{repo}/issues/{issue_number}/reactions", "GET /repos/{owner}/{repo}/issues/{issue_number}/timeline", "GET /repos/{owner}/{repo}/keys", "GET /repos/{owner}/{repo}/labels", "GET /repos/{owner}/{repo}/milestones", "GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels", "GET /repos/{owner}/{repo}/notifications", "GET /repos/{owner}/{repo}/pages/builds", "GET /repos/{owner}/{repo}/projects", "GET /repos/{owner}/{repo}/pulls", "GET /repos/{owner}/{repo}/pulls/comments", "GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions", "GET /repos/{owner}/{repo}/pulls/{pull_number}/comments", "GET /repos/{owner}/{repo}/pulls/{pull_number}/commits", "GET /repos/{owner}/{repo}/pulls/{pull_number}/files", "GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews", "GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments", "GET /repos/{owner}/{repo}/releases", "GET /repos/{owner}/{repo}/releases/{release_id}/assets", "GET /repos/{owner}/{repo}/releases/{release_id}/reactions", "GET /repos/{owner}/{repo}/secret-scanning/alerts", "GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations", "GET /repos/{owner}/{repo}/stargazers", "GET /repos/{owner}/{repo}/subscribers", "GET /repos/{owner}/{repo}/tags", "GET /repos/{owner}/{repo}/teams", "GET /repos/{owner}/{repo}/topics", "GET /repositories", "GET /repositories/{repository_id}/environments/{environment_name}/secrets", "GET /search/code", "GET /search/commits", "GET /search/issues", "GET /search/labels", "GET /search/repositories", "GET /search/topics", "GET /search/users", "GET /teams/{team_id}/discussions", "GET /teams/{team_id}/discussions/{discussion_number}/comments", "GET /teams/{team_id}/discussions/{discussion_number}/comments/{comment_number}/reactions", "GET /teams/{team_id}/discussions/{discussion_number}/reactions", "GET /teams/{team_id}/invitations", "GET /teams/{team_id}/members", "GET /teams/{team_id}/projects", "GET /teams/{team_id}/repos", "GET /teams/{team_id}/teams", "GET /user/blocks", "GET /user/codespaces", "GET /user/codespaces/secrets", "GET /user/emails", "GET /user/followers", "GET /user/following", "GET /user/gpg_keys", "GET /user/installations", "GET /user/installations/{installation_id}/repositories", "GET /user/issues", "GET /user/keys", "GET /user/marketplace_purchases", "GET /user/marketplace_purchases/stubbed", "GET /user/memberships/orgs", "GET /user/migrations", "GET /user/migrations/{migration_id}/repositories", "GET /user/orgs", "GET /user/packages", "GET /user/packages/{package_type}/{package_name}/versions", "GET /user/public_emails", "GET /user/repos", "GET /user/repository_invitations", "GET /user/starred", "GET /user/subscriptions", "GET /user/teams", "GET /users", "GET /users/{username}/events", "GET /users/{username}/events/orgs/{org}", "GET /users/{username}/events/public", "GET /users/{username}/followers", "GET /users/{username}/following", "GET /users/{username}/gists", "GET /users/{username}/gpg_keys", "GET /users/{username}/keys", "GET /users/{username}/orgs", "GET /users/{username}/packages", "GET /users/{username}/projects", "GET /users/{username}/received_events", "GET /users/{username}/received_events/public", "GET /users/{username}/repos", "GET /users/{username}/starred", "GET /users/{username}/subscriptions"]; + +function isPaginatingEndpoint(arg) { + if (typeof arg === "string") { + return paginatingEndpoints.includes(arg); + } else { + return false; + } +} + +/** + * @param octokit Octokit instance + * @param options Options passed to Octokit constructor + */ + +function paginateRest(octokit) { + return { + paginate: Object.assign(paginate.bind(null, octokit), { + iterator: iterator.bind(null, octokit) + }) + }; +} +paginateRest.VERSION = VERSION; + +exports.composePaginateRest = composePaginateRest; +exports.isPaginatingEndpoint = isPaginatingEndpoint; +exports.paginateRest = paginateRest; +exports.paginatingEndpoints = paginatingEndpoints; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 60465: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function ownKeys(object, enumerableOnly) { + var keys = Object.keys(object); + + if (Object.getOwnPropertySymbols) { + var symbols = Object.getOwnPropertySymbols(object); + + if (enumerableOnly) { + symbols = symbols.filter(function (sym) { + return Object.getOwnPropertyDescriptor(object, sym).enumerable; + }); + } + + keys.push.apply(keys, symbols); + } + + return keys; +} + +function _objectSpread2(target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i] != null ? arguments[i] : {}; + + if (i % 2) { + ownKeys(Object(source), true).forEach(function (key) { + _defineProperty(target, key, source[key]); + }); + } else if (Object.getOwnPropertyDescriptors) { + Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); + } else { + ownKeys(Object(source)).forEach(function (key) { + Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); + }); + } + } + + return target; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +const Endpoints = { + actions: { + addCustomLabelsToSelfHostedRunnerForOrg: ["POST /orgs/{org}/actions/runners/{runner_id}/labels"], + addCustomLabelsToSelfHostedRunnerForRepo: ["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + approveWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"], + cancelWorkflowRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"], + createOrUpdateEnvironmentSecret: ["PUT /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + createRegistrationTokenForOrg: ["POST /orgs/{org}/actions/runners/registration-token"], + createRegistrationTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/registration-token"], + createRemoveTokenForOrg: ["POST /orgs/{org}/actions/runners/remove-token"], + createRemoveTokenForRepo: ["POST /repos/{owner}/{repo}/actions/runners/remove-token"], + createWorkflowDispatch: ["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"], + deleteActionsCacheById: ["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"], + deleteActionsCacheByKey: ["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"], + deleteArtifact: ["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + deleteEnvironmentSecret: ["DELETE /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + deleteSelfHostedRunnerFromOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}"], + deleteSelfHostedRunnerFromRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"], + deleteWorkflowRun: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"], + deleteWorkflowRunLogs: ["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + disableSelectedRepositoryGithubActionsOrganization: ["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"], + disableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"], + downloadArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"], + downloadJobLogsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"], + downloadWorkflowRunAttemptLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"], + downloadWorkflowRunLogs: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"], + enableSelectedRepositoryGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"], + enableWorkflow: ["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"], + getActionsCacheList: ["GET /repos/{owner}/{repo}/actions/caches"], + getActionsCacheUsage: ["GET /repos/{owner}/{repo}/actions/cache/usage"], + getActionsCacheUsageByRepoForOrg: ["GET /orgs/{org}/actions/cache/usage-by-repository"], + getActionsCacheUsageForEnterprise: ["GET /enterprises/{enterprise}/actions/cache/usage"], + getActionsCacheUsageForOrg: ["GET /orgs/{org}/actions/cache/usage"], + getAllowedActionsOrganization: ["GET /orgs/{org}/actions/permissions/selected-actions"], + getAllowedActionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"], + getArtifact: ["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"], + getEnvironmentPublicKey: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/public-key"], + getEnvironmentSecret: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets/{secret_name}"], + getGithubActionsDefaultWorkflowPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/workflow"], + getGithubActionsDefaultWorkflowPermissionsOrganization: ["GET /orgs/{org}/actions/permissions/workflow"], + getGithubActionsDefaultWorkflowPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions/workflow"], + getGithubActionsPermissionsOrganization: ["GET /orgs/{org}/actions/permissions"], + getGithubActionsPermissionsRepository: ["GET /repos/{owner}/{repo}/actions/permissions"], + getJobForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"], + getOrgPublicKey: ["GET /orgs/{org}/actions/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}"], + getPendingDeploymentsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + getRepoPermissions: ["GET /repos/{owner}/{repo}/actions/permissions", {}, { + renamed: ["actions", "getGithubActionsPermissionsRepository"] + }], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/actions/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"], + getReviewsForRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"], + getSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}"], + getSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"], + getWorkflow: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"], + getWorkflowAccessToRepository: ["GET /repos/{owner}/{repo}/actions/permissions/access"], + getWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}"], + getWorkflowRunAttempt: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"], + getWorkflowRunUsage: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"], + getWorkflowUsage: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"], + listArtifactsForRepo: ["GET /repos/{owner}/{repo}/actions/artifacts"], + listEnvironmentSecrets: ["GET /repositories/{repository_id}/environments/{environment_name}/secrets"], + listJobsForWorkflowRun: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"], + listJobsForWorkflowRunAttempt: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"], + listLabelsForSelfHostedRunnerForOrg: ["GET /orgs/{org}/actions/runners/{runner_id}/labels"], + listLabelsForSelfHostedRunnerForRepo: ["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + listOrgSecrets: ["GET /orgs/{org}/actions/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/actions/secrets"], + listRepoWorkflows: ["GET /repos/{owner}/{repo}/actions/workflows"], + listRunnerApplicationsForOrg: ["GET /orgs/{org}/actions/runners/downloads"], + listRunnerApplicationsForRepo: ["GET /repos/{owner}/{repo}/actions/runners/downloads"], + listSelectedReposForOrgSecret: ["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"], + listSelectedRepositoriesEnabledGithubActionsOrganization: ["GET /orgs/{org}/actions/permissions/repositories"], + listSelfHostedRunnersForOrg: ["GET /orgs/{org}/actions/runners"], + listSelfHostedRunnersForRepo: ["GET /repos/{owner}/{repo}/actions/runners"], + listWorkflowRunArtifacts: ["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"], + listWorkflowRuns: ["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"], + listWorkflowRunsForRepo: ["GET /repos/{owner}/{repo}/actions/runs"], + reRunJobForWorkflowRun: ["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"], + reRunWorkflow: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"], + reRunWorkflowFailedJobs: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"], + removeAllCustomLabelsFromSelfHostedRunnerForOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"], + removeAllCustomLabelsFromSelfHostedRunnerForRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + removeCustomLabelFromSelfHostedRunnerForOrg: ["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"], + removeCustomLabelFromSelfHostedRunnerForRepo: ["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"], + removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"], + reviewPendingDeploymentsForRun: ["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"], + setAllowedActionsOrganization: ["PUT /orgs/{org}/actions/permissions/selected-actions"], + setAllowedActionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"], + setCustomLabelsForSelfHostedRunnerForOrg: ["PUT /orgs/{org}/actions/runners/{runner_id}/labels"], + setCustomLabelsForSelfHostedRunnerForRepo: ["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"], + setGithubActionsDefaultWorkflowPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/workflow"], + setGithubActionsDefaultWorkflowPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions/workflow"], + setGithubActionsDefaultWorkflowPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/workflow"], + setGithubActionsPermissionsOrganization: ["PUT /orgs/{org}/actions/permissions"], + setGithubActionsPermissionsRepository: ["PUT /repos/{owner}/{repo}/actions/permissions"], + setSelectedReposForOrgSecret: ["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"], + setSelectedRepositoriesEnabledGithubActionsOrganization: ["PUT /orgs/{org}/actions/permissions/repositories"], + setWorkflowAccessToRepository: ["PUT /repos/{owner}/{repo}/actions/permissions/access"] + }, + activity: { + checkRepoIsStarredByAuthenticatedUser: ["GET /user/starred/{owner}/{repo}"], + deleteRepoSubscription: ["DELETE /repos/{owner}/{repo}/subscription"], + deleteThreadSubscription: ["DELETE /notifications/threads/{thread_id}/subscription"], + getFeeds: ["GET /feeds"], + getRepoSubscription: ["GET /repos/{owner}/{repo}/subscription"], + getThread: ["GET /notifications/threads/{thread_id}"], + getThreadSubscriptionForAuthenticatedUser: ["GET /notifications/threads/{thread_id}/subscription"], + listEventsForAuthenticatedUser: ["GET /users/{username}/events"], + listNotificationsForAuthenticatedUser: ["GET /notifications"], + listOrgEventsForAuthenticatedUser: ["GET /users/{username}/events/orgs/{org}"], + listPublicEvents: ["GET /events"], + listPublicEventsForRepoNetwork: ["GET /networks/{owner}/{repo}/events"], + listPublicEventsForUser: ["GET /users/{username}/events/public"], + listPublicOrgEvents: ["GET /orgs/{org}/events"], + listReceivedEventsForUser: ["GET /users/{username}/received_events"], + listReceivedPublicEventsForUser: ["GET /users/{username}/received_events/public"], + listRepoEvents: ["GET /repos/{owner}/{repo}/events"], + listRepoNotificationsForAuthenticatedUser: ["GET /repos/{owner}/{repo}/notifications"], + listReposStarredByAuthenticatedUser: ["GET /user/starred"], + listReposStarredByUser: ["GET /users/{username}/starred"], + listReposWatchedByUser: ["GET /users/{username}/subscriptions"], + listStargazersForRepo: ["GET /repos/{owner}/{repo}/stargazers"], + listWatchedReposForAuthenticatedUser: ["GET /user/subscriptions"], + listWatchersForRepo: ["GET /repos/{owner}/{repo}/subscribers"], + markNotificationsAsRead: ["PUT /notifications"], + markRepoNotificationsAsRead: ["PUT /repos/{owner}/{repo}/notifications"], + markThreadAsRead: ["PATCH /notifications/threads/{thread_id}"], + setRepoSubscription: ["PUT /repos/{owner}/{repo}/subscription"], + setThreadSubscription: ["PUT /notifications/threads/{thread_id}/subscription"], + starRepoForAuthenticatedUser: ["PUT /user/starred/{owner}/{repo}"], + unstarRepoForAuthenticatedUser: ["DELETE /user/starred/{owner}/{repo}"] + }, + apps: { + addRepoToInstallation: ["PUT /user/installations/{installation_id}/repositories/{repository_id}", {}, { + renamed: ["apps", "addRepoToInstallationForAuthenticatedUser"] + }], + addRepoToInstallationForAuthenticatedUser: ["PUT /user/installations/{installation_id}/repositories/{repository_id}"], + checkToken: ["POST /applications/{client_id}/token"], + createFromManifest: ["POST /app-manifests/{code}/conversions"], + createInstallationAccessToken: ["POST /app/installations/{installation_id}/access_tokens"], + deleteAuthorization: ["DELETE /applications/{client_id}/grant"], + deleteInstallation: ["DELETE /app/installations/{installation_id}"], + deleteToken: ["DELETE /applications/{client_id}/token"], + getAuthenticated: ["GET /app"], + getBySlug: ["GET /apps/{app_slug}"], + getInstallation: ["GET /app/installations/{installation_id}"], + getOrgInstallation: ["GET /orgs/{org}/installation"], + getRepoInstallation: ["GET /repos/{owner}/{repo}/installation"], + getSubscriptionPlanForAccount: ["GET /marketplace_listing/accounts/{account_id}"], + getSubscriptionPlanForAccountStubbed: ["GET /marketplace_listing/stubbed/accounts/{account_id}"], + getUserInstallation: ["GET /users/{username}/installation"], + getWebhookConfigForApp: ["GET /app/hook/config"], + getWebhookDelivery: ["GET /app/hook/deliveries/{delivery_id}"], + listAccountsForPlan: ["GET /marketplace_listing/plans/{plan_id}/accounts"], + listAccountsForPlanStubbed: ["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"], + listInstallationReposForAuthenticatedUser: ["GET /user/installations/{installation_id}/repositories"], + listInstallations: ["GET /app/installations"], + listInstallationsForAuthenticatedUser: ["GET /user/installations"], + listPlans: ["GET /marketplace_listing/plans"], + listPlansStubbed: ["GET /marketplace_listing/stubbed/plans"], + listReposAccessibleToInstallation: ["GET /installation/repositories"], + listSubscriptionsForAuthenticatedUser: ["GET /user/marketplace_purchases"], + listSubscriptionsForAuthenticatedUserStubbed: ["GET /user/marketplace_purchases/stubbed"], + listWebhookDeliveries: ["GET /app/hook/deliveries"], + redeliverWebhookDelivery: ["POST /app/hook/deliveries/{delivery_id}/attempts"], + removeRepoFromInstallation: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}", {}, { + renamed: ["apps", "removeRepoFromInstallationForAuthenticatedUser"] + }], + removeRepoFromInstallationForAuthenticatedUser: ["DELETE /user/installations/{installation_id}/repositories/{repository_id}"], + resetToken: ["PATCH /applications/{client_id}/token"], + revokeInstallationAccessToken: ["DELETE /installation/token"], + scopeToken: ["POST /applications/{client_id}/token/scoped"], + suspendInstallation: ["PUT /app/installations/{installation_id}/suspended"], + unsuspendInstallation: ["DELETE /app/installations/{installation_id}/suspended"], + updateWebhookConfigForApp: ["PATCH /app/hook/config"] + }, + billing: { + getGithubActionsBillingOrg: ["GET /orgs/{org}/settings/billing/actions"], + getGithubActionsBillingUser: ["GET /users/{username}/settings/billing/actions"], + getGithubAdvancedSecurityBillingGhe: ["GET /enterprises/{enterprise}/settings/billing/advanced-security"], + getGithubAdvancedSecurityBillingOrg: ["GET /orgs/{org}/settings/billing/advanced-security"], + getGithubPackagesBillingOrg: ["GET /orgs/{org}/settings/billing/packages"], + getGithubPackagesBillingUser: ["GET /users/{username}/settings/billing/packages"], + getSharedStorageBillingOrg: ["GET /orgs/{org}/settings/billing/shared-storage"], + getSharedStorageBillingUser: ["GET /users/{username}/settings/billing/shared-storage"] + }, + checks: { + create: ["POST /repos/{owner}/{repo}/check-runs"], + createSuite: ["POST /repos/{owner}/{repo}/check-suites"], + get: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"], + getSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"], + listAnnotations: ["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"], + listForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"], + listForSuite: ["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"], + listSuitesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"], + rerequestRun: ["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"], + rerequestSuite: ["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"], + setSuitesPreferences: ["PATCH /repos/{owner}/{repo}/check-suites/preferences"], + update: ["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"] + }, + codeScanning: { + deleteAnalysis: ["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"], + getAlert: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}", {}, { + renamedParameters: { + alert_id: "alert_number" + } + }], + getAnalysis: ["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"], + getSarif: ["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"], + listAlertInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"], + listAlertsForOrg: ["GET /orgs/{org}/code-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/code-scanning/alerts"], + listAlertsInstances: ["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances", {}, { + renamed: ["codeScanning", "listAlertInstances"] + }], + listRecentAnalyses: ["GET /repos/{owner}/{repo}/code-scanning/analyses"], + updateAlert: ["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"], + uploadSarif: ["POST /repos/{owner}/{repo}/code-scanning/sarifs"] + }, + codesOfConduct: { + getAllCodesOfConduct: ["GET /codes_of_conduct"], + getConductCode: ["GET /codes_of_conduct/{key}"] + }, + codespaces: { + addRepositoryForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + codespaceMachinesForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/machines"], + createForAuthenticatedUser: ["POST /user/codespaces"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + createOrUpdateSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}"], + createWithPrForAuthenticatedUser: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"], + createWithRepoForAuthenticatedUser: ["POST /repos/{owner}/{repo}/codespaces"], + deleteForAuthenticatedUser: ["DELETE /user/codespaces/{codespace_name}"], + deleteFromOrganization: ["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + deleteSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}"], + exportForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/exports"], + getExportDetailsForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}/exports/{export_id}"], + getForAuthenticatedUser: ["GET /user/codespaces/{codespace_name}"], + getPublicKeyForAuthenticatedUser: ["GET /user/codespaces/secrets/public-key"], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"], + getSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}"], + listDevcontainersInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/devcontainers"], + listForAuthenticatedUser: ["GET /user/codespaces"], + listInOrganization: ["GET /orgs/{org}/codespaces", {}, { + renamedParameters: { + org_id: "org" + } + }], + listInRepositoryForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/codespaces/secrets"], + listRepositoriesForSecretForAuthenticatedUser: ["GET /user/codespaces/secrets/{secret_name}/repositories"], + listSecretsForAuthenticatedUser: ["GET /user/codespaces/secrets"], + removeRepositoryForSecretForAuthenticatedUser: ["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"], + repoMachinesForAuthenticatedUser: ["GET /repos/{owner}/{repo}/codespaces/machines"], + setRepositoriesForSecretForAuthenticatedUser: ["PUT /user/codespaces/secrets/{secret_name}/repositories"], + startForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/start"], + stopForAuthenticatedUser: ["POST /user/codespaces/{codespace_name}/stop"], + stopInOrganization: ["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"], + updateForAuthenticatedUser: ["PATCH /user/codespaces/{codespace_name}"] + }, + dependabot: { + addSelectedRepoToOrgSecret: ["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"], + createOrUpdateOrgSecret: ["PUT /orgs/{org}/dependabot/secrets/{secret_name}"], + createOrUpdateRepoSecret: ["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"], + deleteOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"], + deleteRepoSecret: ["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"], + getOrgPublicKey: ["GET /orgs/{org}/dependabot/secrets/public-key"], + getOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}"], + getRepoPublicKey: ["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"], + getRepoSecret: ["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"], + listOrgSecrets: ["GET /orgs/{org}/dependabot/secrets"], + listRepoSecrets: ["GET /repos/{owner}/{repo}/dependabot/secrets"], + listSelectedReposForOrgSecret: ["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"], + removeSelectedRepoFromOrgSecret: ["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"], + setSelectedReposForOrgSecret: ["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"] + }, + dependencyGraph: { + createRepositorySnapshot: ["POST /repos/{owner}/{repo}/dependency-graph/snapshots"], + diffRange: ["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"] + }, + emojis: { + get: ["GET /emojis"] + }, + enterpriseAdmin: { + addCustomLabelsToSelfHostedRunnerForEnterprise: ["POST /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + disableSelectedOrganizationGithubActionsEnterprise: ["DELETE /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + enableSelectedOrganizationGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations/{org_id}"], + getAllowedActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/selected-actions"], + getGithubActionsPermissionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions"], + getServerStatistics: ["GET /enterprise-installation/{enterprise_or_org}/server-statistics"], + listLabelsForSelfHostedRunnerForEnterprise: ["GET /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + listSelectedOrganizationsEnabledGithubActionsEnterprise: ["GET /enterprises/{enterprise}/actions/permissions/organizations"], + removeAllCustomLabelsFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + removeCustomLabelFromSelfHostedRunnerForEnterprise: ["DELETE /enterprises/{enterprise}/actions/runners/{runner_id}/labels/{name}"], + setAllowedActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/selected-actions"], + setCustomLabelsForSelfHostedRunnerForEnterprise: ["PUT /enterprises/{enterprise}/actions/runners/{runner_id}/labels"], + setGithubActionsPermissionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions"], + setSelectedOrganizationsEnabledGithubActionsEnterprise: ["PUT /enterprises/{enterprise}/actions/permissions/organizations"] + }, + gists: { + checkIsStarred: ["GET /gists/{gist_id}/star"], + create: ["POST /gists"], + createComment: ["POST /gists/{gist_id}/comments"], + delete: ["DELETE /gists/{gist_id}"], + deleteComment: ["DELETE /gists/{gist_id}/comments/{comment_id}"], + fork: ["POST /gists/{gist_id}/forks"], + get: ["GET /gists/{gist_id}"], + getComment: ["GET /gists/{gist_id}/comments/{comment_id}"], + getRevision: ["GET /gists/{gist_id}/{sha}"], + list: ["GET /gists"], + listComments: ["GET /gists/{gist_id}/comments"], + listCommits: ["GET /gists/{gist_id}/commits"], + listForUser: ["GET /users/{username}/gists"], + listForks: ["GET /gists/{gist_id}/forks"], + listPublic: ["GET /gists/public"], + listStarred: ["GET /gists/starred"], + star: ["PUT /gists/{gist_id}/star"], + unstar: ["DELETE /gists/{gist_id}/star"], + update: ["PATCH /gists/{gist_id}"], + updateComment: ["PATCH /gists/{gist_id}/comments/{comment_id}"] + }, + git: { + createBlob: ["POST /repos/{owner}/{repo}/git/blobs"], + createCommit: ["POST /repos/{owner}/{repo}/git/commits"], + createRef: ["POST /repos/{owner}/{repo}/git/refs"], + createTag: ["POST /repos/{owner}/{repo}/git/tags"], + createTree: ["POST /repos/{owner}/{repo}/git/trees"], + deleteRef: ["DELETE /repos/{owner}/{repo}/git/refs/{ref}"], + getBlob: ["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"], + getCommit: ["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"], + getRef: ["GET /repos/{owner}/{repo}/git/ref/{ref}"], + getTag: ["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"], + getTree: ["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"], + listMatchingRefs: ["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"], + updateRef: ["PATCH /repos/{owner}/{repo}/git/refs/{ref}"] + }, + gitignore: { + getAllTemplates: ["GET /gitignore/templates"], + getTemplate: ["GET /gitignore/templates/{name}"] + }, + interactions: { + getRestrictionsForAuthenticatedUser: ["GET /user/interaction-limits"], + getRestrictionsForOrg: ["GET /orgs/{org}/interaction-limits"], + getRestrictionsForRepo: ["GET /repos/{owner}/{repo}/interaction-limits"], + getRestrictionsForYourPublicRepos: ["GET /user/interaction-limits", {}, { + renamed: ["interactions", "getRestrictionsForAuthenticatedUser"] + }], + removeRestrictionsForAuthenticatedUser: ["DELETE /user/interaction-limits"], + removeRestrictionsForOrg: ["DELETE /orgs/{org}/interaction-limits"], + removeRestrictionsForRepo: ["DELETE /repos/{owner}/{repo}/interaction-limits"], + removeRestrictionsForYourPublicRepos: ["DELETE /user/interaction-limits", {}, { + renamed: ["interactions", "removeRestrictionsForAuthenticatedUser"] + }], + setRestrictionsForAuthenticatedUser: ["PUT /user/interaction-limits"], + setRestrictionsForOrg: ["PUT /orgs/{org}/interaction-limits"], + setRestrictionsForRepo: ["PUT /repos/{owner}/{repo}/interaction-limits"], + setRestrictionsForYourPublicRepos: ["PUT /user/interaction-limits", {}, { + renamed: ["interactions", "setRestrictionsForAuthenticatedUser"] + }] + }, + issues: { + addAssignees: ["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + addLabels: ["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"], + checkUserCanBeAssigned: ["GET /repos/{owner}/{repo}/assignees/{assignee}"], + create: ["POST /repos/{owner}/{repo}/issues"], + createComment: ["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"], + createLabel: ["POST /repos/{owner}/{repo}/labels"], + createMilestone: ["POST /repos/{owner}/{repo}/milestones"], + deleteComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"], + deleteLabel: ["DELETE /repos/{owner}/{repo}/labels/{name}"], + deleteMilestone: ["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"], + get: ["GET /repos/{owner}/{repo}/issues/{issue_number}"], + getComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"], + getEvent: ["GET /repos/{owner}/{repo}/issues/events/{event_id}"], + getLabel: ["GET /repos/{owner}/{repo}/labels/{name}"], + getMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}"], + list: ["GET /issues"], + listAssignees: ["GET /repos/{owner}/{repo}/assignees"], + listComments: ["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"], + listCommentsForRepo: ["GET /repos/{owner}/{repo}/issues/comments"], + listEvents: ["GET /repos/{owner}/{repo}/issues/{issue_number}/events"], + listEventsForRepo: ["GET /repos/{owner}/{repo}/issues/events"], + listEventsForTimeline: ["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"], + listForAuthenticatedUser: ["GET /user/issues"], + listForOrg: ["GET /orgs/{org}/issues"], + listForRepo: ["GET /repos/{owner}/{repo}/issues"], + listLabelsForMilestone: ["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"], + listLabelsForRepo: ["GET /repos/{owner}/{repo}/labels"], + listLabelsOnIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"], + listMilestones: ["GET /repos/{owner}/{repo}/milestones"], + lock: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"], + removeAllLabels: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"], + removeAssignees: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"], + removeLabel: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"], + setLabels: ["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"], + unlock: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"], + update: ["PATCH /repos/{owner}/{repo}/issues/{issue_number}"], + updateComment: ["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"], + updateLabel: ["PATCH /repos/{owner}/{repo}/labels/{name}"], + updateMilestone: ["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"] + }, + licenses: { + get: ["GET /licenses/{license}"], + getAllCommonlyUsed: ["GET /licenses"], + getForRepo: ["GET /repos/{owner}/{repo}/license"] + }, + markdown: { + render: ["POST /markdown"], + renderRaw: ["POST /markdown/raw", { + headers: { + "content-type": "text/plain; charset=utf-8" + } + }] + }, + meta: { + get: ["GET /meta"], + getOctocat: ["GET /octocat"], + getZen: ["GET /zen"], + root: ["GET /"] + }, + migrations: { + cancelImport: ["DELETE /repos/{owner}/{repo}/import"], + deleteArchiveForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/archive"], + deleteArchiveForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/archive"], + downloadArchiveForOrg: ["GET /orgs/{org}/migrations/{migration_id}/archive"], + getArchiveForAuthenticatedUser: ["GET /user/migrations/{migration_id}/archive"], + getCommitAuthors: ["GET /repos/{owner}/{repo}/import/authors"], + getImportStatus: ["GET /repos/{owner}/{repo}/import"], + getLargeFiles: ["GET /repos/{owner}/{repo}/import/large_files"], + getStatusForAuthenticatedUser: ["GET /user/migrations/{migration_id}"], + getStatusForOrg: ["GET /orgs/{org}/migrations/{migration_id}"], + listForAuthenticatedUser: ["GET /user/migrations"], + listForOrg: ["GET /orgs/{org}/migrations"], + listReposForAuthenticatedUser: ["GET /user/migrations/{migration_id}/repositories"], + listReposForOrg: ["GET /orgs/{org}/migrations/{migration_id}/repositories"], + listReposForUser: ["GET /user/migrations/{migration_id}/repositories", {}, { + renamed: ["migrations", "listReposForAuthenticatedUser"] + }], + mapCommitAuthor: ["PATCH /repos/{owner}/{repo}/import/authors/{author_id}"], + setLfsPreference: ["PATCH /repos/{owner}/{repo}/import/lfs"], + startForAuthenticatedUser: ["POST /user/migrations"], + startForOrg: ["POST /orgs/{org}/migrations"], + startImport: ["PUT /repos/{owner}/{repo}/import"], + unlockRepoForAuthenticatedUser: ["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"], + unlockRepoForOrg: ["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"], + updateImport: ["PATCH /repos/{owner}/{repo}/import"] + }, + orgs: { + blockUser: ["PUT /orgs/{org}/blocks/{username}"], + cancelInvitation: ["DELETE /orgs/{org}/invitations/{invitation_id}"], + checkBlockedUser: ["GET /orgs/{org}/blocks/{username}"], + checkMembershipForUser: ["GET /orgs/{org}/members/{username}"], + checkPublicMembershipForUser: ["GET /orgs/{org}/public_members/{username}"], + convertMemberToOutsideCollaborator: ["PUT /orgs/{org}/outside_collaborators/{username}"], + createInvitation: ["POST /orgs/{org}/invitations"], + createWebhook: ["POST /orgs/{org}/hooks"], + deleteWebhook: ["DELETE /orgs/{org}/hooks/{hook_id}"], + get: ["GET /orgs/{org}"], + getMembershipForAuthenticatedUser: ["GET /user/memberships/orgs/{org}"], + getMembershipForUser: ["GET /orgs/{org}/memberships/{username}"], + getWebhook: ["GET /orgs/{org}/hooks/{hook_id}"], + getWebhookConfigForOrg: ["GET /orgs/{org}/hooks/{hook_id}/config"], + getWebhookDelivery: ["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"], + list: ["GET /organizations"], + listAppInstallations: ["GET /orgs/{org}/installations"], + listBlockedUsers: ["GET /orgs/{org}/blocks"], + listCustomRoles: ["GET /organizations/{organization_id}/custom_roles"], + listFailedInvitations: ["GET /orgs/{org}/failed_invitations"], + listForAuthenticatedUser: ["GET /user/orgs"], + listForUser: ["GET /users/{username}/orgs"], + listInvitationTeams: ["GET /orgs/{org}/invitations/{invitation_id}/teams"], + listMembers: ["GET /orgs/{org}/members"], + listMembershipsForAuthenticatedUser: ["GET /user/memberships/orgs"], + listOutsideCollaborators: ["GET /orgs/{org}/outside_collaborators"], + listPendingInvitations: ["GET /orgs/{org}/invitations"], + listPublicMembers: ["GET /orgs/{org}/public_members"], + listWebhookDeliveries: ["GET /orgs/{org}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /orgs/{org}/hooks"], + pingWebhook: ["POST /orgs/{org}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: ["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"], + removeMember: ["DELETE /orgs/{org}/members/{username}"], + removeMembershipForUser: ["DELETE /orgs/{org}/memberships/{username}"], + removeOutsideCollaborator: ["DELETE /orgs/{org}/outside_collaborators/{username}"], + removePublicMembershipForAuthenticatedUser: ["DELETE /orgs/{org}/public_members/{username}"], + setMembershipForUser: ["PUT /orgs/{org}/memberships/{username}"], + setPublicMembershipForAuthenticatedUser: ["PUT /orgs/{org}/public_members/{username}"], + unblockUser: ["DELETE /orgs/{org}/blocks/{username}"], + update: ["PATCH /orgs/{org}"], + updateMembershipForAuthenticatedUser: ["PATCH /user/memberships/orgs/{org}"], + updateWebhook: ["PATCH /orgs/{org}/hooks/{hook_id}"], + updateWebhookConfigForOrg: ["PATCH /orgs/{org}/hooks/{hook_id}/config"] + }, + packages: { + deletePackageForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}"], + deletePackageForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}"], + deletePackageForUser: ["DELETE /users/{username}/packages/{package_type}/{package_name}"], + deletePackageVersionForAuthenticatedUser: ["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], + deletePackageVersionForOrg: ["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + deletePackageVersionForUser: ["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getAllPackageVersionsForAPackageOwnedByAnOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions", {}, { + renamed: ["packages", "getAllPackageVersionsForPackageOwnedByOrg"] + }], + getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions", {}, { + renamed: ["packages", "getAllPackageVersionsForPackageOwnedByAuthenticatedUser"] + }], + getAllPackageVersionsForPackageOwnedByAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions"], + getAllPackageVersionsForPackageOwnedByOrg: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"], + getAllPackageVersionsForPackageOwnedByUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions"], + getPackageForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}"], + getPackageForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}"], + getPackageForUser: ["GET /users/{username}/packages/{package_type}/{package_name}"], + getPackageVersionForAuthenticatedUser: ["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getPackageVersionForOrganization: ["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + getPackageVersionForUser: ["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"], + listPackagesForAuthenticatedUser: ["GET /user/packages"], + listPackagesForOrganization: ["GET /orgs/{org}/packages"], + listPackagesForUser: ["GET /users/{username}/packages"], + restorePackageForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageForUser: ["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"], + restorePackageVersionForAuthenticatedUser: ["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], + restorePackageVersionForOrg: ["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"], + restorePackageVersionForUser: ["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"] + }, + projects: { + addCollaborator: ["PUT /projects/{project_id}/collaborators/{username}"], + createCard: ["POST /projects/columns/{column_id}/cards"], + createColumn: ["POST /projects/{project_id}/columns"], + createForAuthenticatedUser: ["POST /user/projects"], + createForOrg: ["POST /orgs/{org}/projects"], + createForRepo: ["POST /repos/{owner}/{repo}/projects"], + delete: ["DELETE /projects/{project_id}"], + deleteCard: ["DELETE /projects/columns/cards/{card_id}"], + deleteColumn: ["DELETE /projects/columns/{column_id}"], + get: ["GET /projects/{project_id}"], + getCard: ["GET /projects/columns/cards/{card_id}"], + getColumn: ["GET /projects/columns/{column_id}"], + getPermissionForUser: ["GET /projects/{project_id}/collaborators/{username}/permission"], + listCards: ["GET /projects/columns/{column_id}/cards"], + listCollaborators: ["GET /projects/{project_id}/collaborators"], + listColumns: ["GET /projects/{project_id}/columns"], + listForOrg: ["GET /orgs/{org}/projects"], + listForRepo: ["GET /repos/{owner}/{repo}/projects"], + listForUser: ["GET /users/{username}/projects"], + moveCard: ["POST /projects/columns/cards/{card_id}/moves"], + moveColumn: ["POST /projects/columns/{column_id}/moves"], + removeCollaborator: ["DELETE /projects/{project_id}/collaborators/{username}"], + update: ["PATCH /projects/{project_id}"], + updateCard: ["PATCH /projects/columns/cards/{card_id}"], + updateColumn: ["PATCH /projects/columns/{column_id}"] + }, + pulls: { + checkIfMerged: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + create: ["POST /repos/{owner}/{repo}/pulls"], + createReplyForReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"], + createReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + createReviewComment: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + deletePendingReview: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + deleteReviewComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + dismissReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"], + get: ["GET /repos/{owner}/{repo}/pulls/{pull_number}"], + getReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + getReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"], + list: ["GET /repos/{owner}/{repo}/pulls"], + listCommentsForReview: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"], + listCommits: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"], + listFiles: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"], + listRequestedReviewers: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + listReviewComments: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"], + listReviewCommentsForRepo: ["GET /repos/{owner}/{repo}/pulls/comments"], + listReviews: ["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"], + merge: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"], + removeRequestedReviewers: ["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + requestReviewers: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"], + submitReview: ["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"], + update: ["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"], + updateBranch: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"], + updateReview: ["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"], + updateReviewComment: ["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"] + }, + rateLimit: { + get: ["GET /rate_limit"] + }, + reactions: { + createForCommitComment: ["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"], + createForIssue: ["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + createForIssueComment: ["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"], + createForPullRequestReviewComment: ["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"], + createForRelease: ["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"], + createForTeamDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"], + createForTeamDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"], + deleteForCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"], + deleteForIssue: ["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"], + deleteForIssueComment: ["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"], + deleteForPullRequestComment: ["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"], + deleteForRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"], + deleteForTeamDiscussion: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"], + deleteForTeamDiscussionComment: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"], + listForCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"], + listForIssue: ["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"], + listForIssueComment: ["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"], + listForPullRequestReviewComment: ["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"], + listForRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"], + listForTeamDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"], + listForTeamDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"] + }, + repos: { + acceptInvitation: ["PATCH /user/repository_invitations/{invitation_id}", {}, { + renamed: ["repos", "acceptInvitationForAuthenticatedUser"] + }], + acceptInvitationForAuthenticatedUser: ["PATCH /user/repository_invitations/{invitation_id}"], + addAppAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + addCollaborator: ["PUT /repos/{owner}/{repo}/collaborators/{username}"], + addStatusCheckContexts: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + addTeamAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + addUserAccessRestrictions: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + checkCollaborator: ["GET /repos/{owner}/{repo}/collaborators/{username}"], + checkVulnerabilityAlerts: ["GET /repos/{owner}/{repo}/vulnerability-alerts"], + codeownersErrors: ["GET /repos/{owner}/{repo}/codeowners/errors"], + compareCommits: ["GET /repos/{owner}/{repo}/compare/{base}...{head}"], + compareCommitsWithBasehead: ["GET /repos/{owner}/{repo}/compare/{basehead}"], + createAutolink: ["POST /repos/{owner}/{repo}/autolinks"], + createCommitComment: ["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + createCommitSignatureProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"], + createCommitStatus: ["POST /repos/{owner}/{repo}/statuses/{sha}"], + createDeployKey: ["POST /repos/{owner}/{repo}/keys"], + createDeployment: ["POST /repos/{owner}/{repo}/deployments"], + createDeploymentStatus: ["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + createDispatchEvent: ["POST /repos/{owner}/{repo}/dispatches"], + createForAuthenticatedUser: ["POST /user/repos"], + createFork: ["POST /repos/{owner}/{repo}/forks"], + createInOrg: ["POST /orgs/{org}/repos"], + createOrUpdateEnvironment: ["PUT /repos/{owner}/{repo}/environments/{environment_name}"], + createOrUpdateFileContents: ["PUT /repos/{owner}/{repo}/contents/{path}"], + createPagesSite: ["POST /repos/{owner}/{repo}/pages"], + createRelease: ["POST /repos/{owner}/{repo}/releases"], + createTagProtection: ["POST /repos/{owner}/{repo}/tags/protection"], + createUsingTemplate: ["POST /repos/{template_owner}/{template_repo}/generate"], + createWebhook: ["POST /repos/{owner}/{repo}/hooks"], + declineInvitation: ["DELETE /user/repository_invitations/{invitation_id}", {}, { + renamed: ["repos", "declineInvitationForAuthenticatedUser"] + }], + declineInvitationForAuthenticatedUser: ["DELETE /user/repository_invitations/{invitation_id}"], + delete: ["DELETE /repos/{owner}/{repo}"], + deleteAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + deleteAdminBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + deleteAnEnvironment: ["DELETE /repos/{owner}/{repo}/environments/{environment_name}"], + deleteAutolink: ["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"], + deleteBranchProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"], + deleteCommitComment: ["DELETE /repos/{owner}/{repo}/comments/{comment_id}"], + deleteCommitSignatureProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"], + deleteDeployKey: ["DELETE /repos/{owner}/{repo}/keys/{key_id}"], + deleteDeployment: ["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"], + deleteFile: ["DELETE /repos/{owner}/{repo}/contents/{path}"], + deleteInvitation: ["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"], + deletePagesSite: ["DELETE /repos/{owner}/{repo}/pages"], + deletePullRequestReviewProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + deleteRelease: ["DELETE /repos/{owner}/{repo}/releases/{release_id}"], + deleteReleaseAsset: ["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"], + deleteTagProtection: ["DELETE /repos/{owner}/{repo}/tags/protection/{tag_protection_id}"], + deleteWebhook: ["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"], + disableAutomatedSecurityFixes: ["DELETE /repos/{owner}/{repo}/automated-security-fixes"], + disableLfsForRepo: ["DELETE /repos/{owner}/{repo}/lfs"], + disableVulnerabilityAlerts: ["DELETE /repos/{owner}/{repo}/vulnerability-alerts"], + downloadArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}", {}, { + renamed: ["repos", "downloadZipballArchive"] + }], + downloadTarballArchive: ["GET /repos/{owner}/{repo}/tarball/{ref}"], + downloadZipballArchive: ["GET /repos/{owner}/{repo}/zipball/{ref}"], + enableAutomatedSecurityFixes: ["PUT /repos/{owner}/{repo}/automated-security-fixes"], + enableLfsForRepo: ["PUT /repos/{owner}/{repo}/lfs"], + enableVulnerabilityAlerts: ["PUT /repos/{owner}/{repo}/vulnerability-alerts"], + generateReleaseNotes: ["POST /repos/{owner}/{repo}/releases/generate-notes"], + get: ["GET /repos/{owner}/{repo}"], + getAccessRestrictions: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"], + getAdminBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + getAllEnvironments: ["GET /repos/{owner}/{repo}/environments"], + getAllStatusCheckContexts: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"], + getAllTopics: ["GET /repos/{owner}/{repo}/topics"], + getAppsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"], + getAutolink: ["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"], + getBranch: ["GET /repos/{owner}/{repo}/branches/{branch}"], + getBranchProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection"], + getClones: ["GET /repos/{owner}/{repo}/traffic/clones"], + getCodeFrequencyStats: ["GET /repos/{owner}/{repo}/stats/code_frequency"], + getCollaboratorPermissionLevel: ["GET /repos/{owner}/{repo}/collaborators/{username}/permission"], + getCombinedStatusForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/status"], + getCommit: ["GET /repos/{owner}/{repo}/commits/{ref}"], + getCommitActivityStats: ["GET /repos/{owner}/{repo}/stats/commit_activity"], + getCommitComment: ["GET /repos/{owner}/{repo}/comments/{comment_id}"], + getCommitSignatureProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"], + getCommunityProfileMetrics: ["GET /repos/{owner}/{repo}/community/profile"], + getContent: ["GET /repos/{owner}/{repo}/contents/{path}"], + getContributorsStats: ["GET /repos/{owner}/{repo}/stats/contributors"], + getDeployKey: ["GET /repos/{owner}/{repo}/keys/{key_id}"], + getDeployment: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}"], + getDeploymentStatus: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"], + getEnvironment: ["GET /repos/{owner}/{repo}/environments/{environment_name}"], + getLatestPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/latest"], + getLatestRelease: ["GET /repos/{owner}/{repo}/releases/latest"], + getPages: ["GET /repos/{owner}/{repo}/pages"], + getPagesBuild: ["GET /repos/{owner}/{repo}/pages/builds/{build_id}"], + getPagesHealthCheck: ["GET /repos/{owner}/{repo}/pages/health"], + getParticipationStats: ["GET /repos/{owner}/{repo}/stats/participation"], + getPullRequestReviewProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + getPunchCardStats: ["GET /repos/{owner}/{repo}/stats/punch_card"], + getReadme: ["GET /repos/{owner}/{repo}/readme"], + getReadmeInDirectory: ["GET /repos/{owner}/{repo}/readme/{dir}"], + getRelease: ["GET /repos/{owner}/{repo}/releases/{release_id}"], + getReleaseAsset: ["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"], + getReleaseByTag: ["GET /repos/{owner}/{repo}/releases/tags/{tag}"], + getStatusChecksProtection: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + getTeamsWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"], + getTopPaths: ["GET /repos/{owner}/{repo}/traffic/popular/paths"], + getTopReferrers: ["GET /repos/{owner}/{repo}/traffic/popular/referrers"], + getUsersWithAccessToProtectedBranch: ["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"], + getViews: ["GET /repos/{owner}/{repo}/traffic/views"], + getWebhook: ["GET /repos/{owner}/{repo}/hooks/{hook_id}"], + getWebhookConfigForRepo: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"], + getWebhookDelivery: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"], + listAutolinks: ["GET /repos/{owner}/{repo}/autolinks"], + listBranches: ["GET /repos/{owner}/{repo}/branches"], + listBranchesForHeadCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"], + listCollaborators: ["GET /repos/{owner}/{repo}/collaborators"], + listCommentsForCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"], + listCommitCommentsForRepo: ["GET /repos/{owner}/{repo}/comments"], + listCommitStatusesForRef: ["GET /repos/{owner}/{repo}/commits/{ref}/statuses"], + listCommits: ["GET /repos/{owner}/{repo}/commits"], + listContributors: ["GET /repos/{owner}/{repo}/contributors"], + listDeployKeys: ["GET /repos/{owner}/{repo}/keys"], + listDeploymentStatuses: ["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"], + listDeployments: ["GET /repos/{owner}/{repo}/deployments"], + listForAuthenticatedUser: ["GET /user/repos"], + listForOrg: ["GET /orgs/{org}/repos"], + listForUser: ["GET /users/{username}/repos"], + listForks: ["GET /repos/{owner}/{repo}/forks"], + listInvitations: ["GET /repos/{owner}/{repo}/invitations"], + listInvitationsForAuthenticatedUser: ["GET /user/repository_invitations"], + listLanguages: ["GET /repos/{owner}/{repo}/languages"], + listPagesBuilds: ["GET /repos/{owner}/{repo}/pages/builds"], + listPublic: ["GET /repositories"], + listPullRequestsAssociatedWithCommit: ["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"], + listReleaseAssets: ["GET /repos/{owner}/{repo}/releases/{release_id}/assets"], + listReleases: ["GET /repos/{owner}/{repo}/releases"], + listTagProtection: ["GET /repos/{owner}/{repo}/tags/protection"], + listTags: ["GET /repos/{owner}/{repo}/tags"], + listTeams: ["GET /repos/{owner}/{repo}/teams"], + listWebhookDeliveries: ["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"], + listWebhooks: ["GET /repos/{owner}/{repo}/hooks"], + merge: ["POST /repos/{owner}/{repo}/merges"], + mergeUpstream: ["POST /repos/{owner}/{repo}/merge-upstream"], + pingWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"], + redeliverWebhookDelivery: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"], + removeAppAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + removeCollaborator: ["DELETE /repos/{owner}/{repo}/collaborators/{username}"], + removeStatusCheckContexts: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + removeStatusCheckProtection: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + removeTeamAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + removeUserAccessRestrictions: ["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + renameBranch: ["POST /repos/{owner}/{repo}/branches/{branch}/rename"], + replaceAllTopics: ["PUT /repos/{owner}/{repo}/topics"], + requestPagesBuild: ["POST /repos/{owner}/{repo}/pages/builds"], + setAdminBranchProtection: ["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"], + setAppAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps", {}, { + mapToData: "apps" + }], + setStatusCheckContexts: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts", {}, { + mapToData: "contexts" + }], + setTeamAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams", {}, { + mapToData: "teams" + }], + setUserAccessRestrictions: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users", {}, { + mapToData: "users" + }], + testPushWebhook: ["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"], + transfer: ["POST /repos/{owner}/{repo}/transfer"], + update: ["PATCH /repos/{owner}/{repo}"], + updateBranchProtection: ["PUT /repos/{owner}/{repo}/branches/{branch}/protection"], + updateCommitComment: ["PATCH /repos/{owner}/{repo}/comments/{comment_id}"], + updateInformationAboutPagesSite: ["PUT /repos/{owner}/{repo}/pages"], + updateInvitation: ["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"], + updatePullRequestReviewProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"], + updateRelease: ["PATCH /repos/{owner}/{repo}/releases/{release_id}"], + updateReleaseAsset: ["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"], + updateStatusCheckPotection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks", {}, { + renamed: ["repos", "updateStatusCheckProtection"] + }], + updateStatusCheckProtection: ["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"], + updateWebhook: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"], + updateWebhookConfigForRepo: ["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"], + uploadReleaseAsset: ["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}", { + baseUrl: "https://uploads.github.com" + }] + }, + search: { + code: ["GET /search/code"], + commits: ["GET /search/commits"], + issuesAndPullRequests: ["GET /search/issues"], + labels: ["GET /search/labels"], + repos: ["GET /search/repositories"], + topics: ["GET /search/topics"], + users: ["GET /search/users"] + }, + secretScanning: { + getAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"], + listAlertsForEnterprise: ["GET /enterprises/{enterprise}/secret-scanning/alerts"], + listAlertsForOrg: ["GET /orgs/{org}/secret-scanning/alerts"], + listAlertsForRepo: ["GET /repos/{owner}/{repo}/secret-scanning/alerts"], + listLocationsForAlert: ["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"], + updateAlert: ["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"] + }, + teams: { + addOrUpdateMembershipForUserInOrg: ["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"], + addOrUpdateProjectPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + addOrUpdateRepoPermissionsInOrg: ["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + checkPermissionsForProjectInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + checkPermissionsForRepoInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + create: ["POST /orgs/{org}/teams"], + createDiscussionCommentInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + createDiscussionInOrg: ["POST /orgs/{org}/teams/{team_slug}/discussions"], + deleteDiscussionCommentInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + deleteDiscussionInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + deleteInOrg: ["DELETE /orgs/{org}/teams/{team_slug}"], + getByName: ["GET /orgs/{org}/teams/{team_slug}"], + getDiscussionCommentInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + getDiscussionInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + getMembershipForUserInOrg: ["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"], + list: ["GET /orgs/{org}/teams"], + listChildInOrg: ["GET /orgs/{org}/teams/{team_slug}/teams"], + listDiscussionCommentsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"], + listDiscussionsInOrg: ["GET /orgs/{org}/teams/{team_slug}/discussions"], + listForAuthenticatedUser: ["GET /user/teams"], + listMembersInOrg: ["GET /orgs/{org}/teams/{team_slug}/members"], + listPendingInvitationsInOrg: ["GET /orgs/{org}/teams/{team_slug}/invitations"], + listProjectsInOrg: ["GET /orgs/{org}/teams/{team_slug}/projects"], + listReposInOrg: ["GET /orgs/{org}/teams/{team_slug}/repos"], + removeMembershipForUserInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"], + removeProjectInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/projects/{project_id}"], + removeRepoInOrg: ["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"], + updateDiscussionCommentInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"], + updateDiscussionInOrg: ["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"], + updateInOrg: ["PATCH /orgs/{org}/teams/{team_slug}"] + }, + users: { + addEmailForAuthenticated: ["POST /user/emails", {}, { + renamed: ["users", "addEmailForAuthenticatedUser"] + }], + addEmailForAuthenticatedUser: ["POST /user/emails"], + block: ["PUT /user/blocks/{username}"], + checkBlocked: ["GET /user/blocks/{username}"], + checkFollowingForUser: ["GET /users/{username}/following/{target_user}"], + checkPersonIsFollowedByAuthenticated: ["GET /user/following/{username}"], + createGpgKeyForAuthenticated: ["POST /user/gpg_keys", {}, { + renamed: ["users", "createGpgKeyForAuthenticatedUser"] + }], + createGpgKeyForAuthenticatedUser: ["POST /user/gpg_keys"], + createPublicSshKeyForAuthenticated: ["POST /user/keys", {}, { + renamed: ["users", "createPublicSshKeyForAuthenticatedUser"] + }], + createPublicSshKeyForAuthenticatedUser: ["POST /user/keys"], + deleteEmailForAuthenticated: ["DELETE /user/emails", {}, { + renamed: ["users", "deleteEmailForAuthenticatedUser"] + }], + deleteEmailForAuthenticatedUser: ["DELETE /user/emails"], + deleteGpgKeyForAuthenticated: ["DELETE /user/gpg_keys/{gpg_key_id}", {}, { + renamed: ["users", "deleteGpgKeyForAuthenticatedUser"] + }], + deleteGpgKeyForAuthenticatedUser: ["DELETE /user/gpg_keys/{gpg_key_id}"], + deletePublicSshKeyForAuthenticated: ["DELETE /user/keys/{key_id}", {}, { + renamed: ["users", "deletePublicSshKeyForAuthenticatedUser"] + }], + deletePublicSshKeyForAuthenticatedUser: ["DELETE /user/keys/{key_id}"], + follow: ["PUT /user/following/{username}"], + getAuthenticated: ["GET /user"], + getByUsername: ["GET /users/{username}"], + getContextForUser: ["GET /users/{username}/hovercard"], + getGpgKeyForAuthenticated: ["GET /user/gpg_keys/{gpg_key_id}", {}, { + renamed: ["users", "getGpgKeyForAuthenticatedUser"] + }], + getGpgKeyForAuthenticatedUser: ["GET /user/gpg_keys/{gpg_key_id}"], + getPublicSshKeyForAuthenticated: ["GET /user/keys/{key_id}", {}, { + renamed: ["users", "getPublicSshKeyForAuthenticatedUser"] + }], + getPublicSshKeyForAuthenticatedUser: ["GET /user/keys/{key_id}"], + list: ["GET /users"], + listBlockedByAuthenticated: ["GET /user/blocks", {}, { + renamed: ["users", "listBlockedByAuthenticatedUser"] + }], + listBlockedByAuthenticatedUser: ["GET /user/blocks"], + listEmailsForAuthenticated: ["GET /user/emails", {}, { + renamed: ["users", "listEmailsForAuthenticatedUser"] + }], + listEmailsForAuthenticatedUser: ["GET /user/emails"], + listFollowedByAuthenticated: ["GET /user/following", {}, { + renamed: ["users", "listFollowedByAuthenticatedUser"] + }], + listFollowedByAuthenticatedUser: ["GET /user/following"], + listFollowersForAuthenticatedUser: ["GET /user/followers"], + listFollowersForUser: ["GET /users/{username}/followers"], + listFollowingForUser: ["GET /users/{username}/following"], + listGpgKeysForAuthenticated: ["GET /user/gpg_keys", {}, { + renamed: ["users", "listGpgKeysForAuthenticatedUser"] + }], + listGpgKeysForAuthenticatedUser: ["GET /user/gpg_keys"], + listGpgKeysForUser: ["GET /users/{username}/gpg_keys"], + listPublicEmailsForAuthenticated: ["GET /user/public_emails", {}, { + renamed: ["users", "listPublicEmailsForAuthenticatedUser"] + }], + listPublicEmailsForAuthenticatedUser: ["GET /user/public_emails"], + listPublicKeysForUser: ["GET /users/{username}/keys"], + listPublicSshKeysForAuthenticated: ["GET /user/keys", {}, { + renamed: ["users", "listPublicSshKeysForAuthenticatedUser"] + }], + listPublicSshKeysForAuthenticatedUser: ["GET /user/keys"], + setPrimaryEmailVisibilityForAuthenticated: ["PATCH /user/email/visibility", {}, { + renamed: ["users", "setPrimaryEmailVisibilityForAuthenticatedUser"] + }], + setPrimaryEmailVisibilityForAuthenticatedUser: ["PATCH /user/email/visibility"], + unblock: ["DELETE /user/blocks/{username}"], + unfollow: ["DELETE /user/following/{username}"], + updateAuthenticated: ["PATCH /user"] + } +}; + +const VERSION = "5.16.2"; + +function endpointsToMethods(octokit, endpointsMap) { + const newMethods = {}; + + for (const [scope, endpoints] of Object.entries(endpointsMap)) { + for (const [methodName, endpoint] of Object.entries(endpoints)) { + const [route, defaults, decorations] = endpoint; + const [method, url] = route.split(/ /); + const endpointDefaults = Object.assign({ + method, + url + }, defaults); + + if (!newMethods[scope]) { + newMethods[scope] = {}; + } + + const scopeMethods = newMethods[scope]; + + if (decorations) { + scopeMethods[methodName] = decorate(octokit, scope, methodName, endpointDefaults, decorations); + continue; + } + + scopeMethods[methodName] = octokit.request.defaults(endpointDefaults); + } + } + + return newMethods; +} + +function decorate(octokit, scope, methodName, defaults, decorations) { + const requestWithDefaults = octokit.request.defaults(defaults); + /* istanbul ignore next */ + + function withDecorations(...args) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + let options = requestWithDefaults.endpoint.merge(...args); // There are currently no other decorations than `.mapToData` + + if (decorations.mapToData) { + options = Object.assign({}, options, { + data: options[decorations.mapToData], + [decorations.mapToData]: undefined + }); + return requestWithDefaults(options); + } + + if (decorations.renamed) { + const [newScope, newMethodName] = decorations.renamed; + octokit.log.warn(`octokit.${scope}.${methodName}() has been renamed to octokit.${newScope}.${newMethodName}()`); + } + + if (decorations.deprecated) { + octokit.log.warn(decorations.deprecated); + } + + if (decorations.renamedParameters) { + // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + const options = requestWithDefaults.endpoint.merge(...args); + + for (const [name, alias] of Object.entries(decorations.renamedParameters)) { + if (name in options) { + octokit.log.warn(`"${name}" parameter is deprecated for "octokit.${scope}.${methodName}()". Use "${alias}" instead`); + + if (!(alias in options)) { + options[alias] = options[name]; + } + + delete options[name]; + } + } + + return requestWithDefaults(options); + } // @ts-ignore https://github.com/microsoft/TypeScript/issues/25488 + + + return requestWithDefaults(...args); + } + + return Object.assign(withDecorations, requestWithDefaults); +} + +function restEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return { + rest: api + }; +} +restEndpointMethods.VERSION = VERSION; +function legacyRestEndpointMethods(octokit) { + const api = endpointsToMethods(octokit, Endpoints); + return _objectSpread2(_objectSpread2({}, api), {}, { + rest: api + }); +} +legacyRestEndpointMethods.VERSION = VERSION; + +exports.legacyRestEndpointMethods = legacyRestEndpointMethods; +exports.restEndpointMethods = restEndpointMethods; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 64125: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var deprecation = __nccwpck_require__(49043); +var once = _interopDefault(__nccwpck_require__(80666)); + +const logOnceCode = once(deprecation => console.warn(deprecation)); +const logOnceHeaders = once(deprecation => console.warn(deprecation)); +/** + * Error with extra properties to help with debugging + */ + +class RequestError extends Error { + constructor(message, statusCode, options) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = "HttpError"; + this.status = statusCode; + let headers; + + if ("headers" in options && typeof options.headers !== "undefined") { + headers = options.headers; + } + + if ("response" in options) { + this.response = options.response; + headers = options.response.headers; + } // redact request credentials without mutating original request options + + + const requestCopy = Object.assign({}, options.request); + + if (options.request.headers.authorization) { + requestCopy.headers = Object.assign({}, options.request.headers, { + authorization: options.request.headers.authorization.replace(/ .*$/, " [REDACTED]") + }); + } + + requestCopy.url = requestCopy.url // client_id & client_secret can be passed as URL query parameters to increase rate limit + // see https://developer.github.com/v3/#increasing-the-unauthenticated-rate-limit-for-oauth-applications + .replace(/\bclient_secret=\w+/g, "client_secret=[REDACTED]") // OAuth tokens can be passed as URL query parameters, although it is not recommended + // see https://developer.github.com/v3/#oauth2-token-sent-in-a-header + .replace(/\baccess_token=\w+/g, "access_token=[REDACTED]"); + this.request = requestCopy; // deprecations + + Object.defineProperty(this, "code", { + get() { + logOnceCode(new deprecation.Deprecation("[@octokit/request-error] `error.code` is deprecated, use `error.status`.")); + return statusCode; + } + + }); + Object.defineProperty(this, "headers", { + get() { + logOnceHeaders(new deprecation.Deprecation("[@octokit/request-error] `error.headers` is deprecated, use `error.response.headers`.")); + return headers || {}; + } + + }); + } + +} + +exports.RequestError = RequestError; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 88299: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var endpoint = __nccwpck_require__(84892); +var universalUserAgent = __nccwpck_require__(28933); +var isPlainObject = __nccwpck_require__(74624); +var nodeFetch = _interopDefault(__nccwpck_require__(2434)); +var requestError = __nccwpck_require__(64125); + +const VERSION = "5.6.3"; + +function getBufferResponse(response) { + return response.arrayBuffer(); +} + +function fetchWrapper(requestOptions) { + const log = requestOptions.request && requestOptions.request.log ? requestOptions.request.log : console; + + if (isPlainObject.isPlainObject(requestOptions.body) || Array.isArray(requestOptions.body)) { + requestOptions.body = JSON.stringify(requestOptions.body); + } + + let headers = {}; + let status; + let url; + const fetch = requestOptions.request && requestOptions.request.fetch || nodeFetch; + return fetch(requestOptions.url, Object.assign({ + method: requestOptions.method, + body: requestOptions.body, + headers: requestOptions.headers, + redirect: requestOptions.redirect + }, // `requestOptions.request.agent` type is incompatible + // see https://github.com/octokit/types.ts/pull/264 + requestOptions.request)).then(async response => { + url = response.url; + status = response.status; + + for (const keyAndValue of response.headers) { + headers[keyAndValue[0]] = keyAndValue[1]; + } + + if ("deprecation" in headers) { + const matches = headers.link && headers.link.match(/<([^>]+)>; rel="deprecation"/); + const deprecationLink = matches && matches.pop(); + log.warn(`[@octokit/request] "${requestOptions.method} ${requestOptions.url}" is deprecated. It is scheduled to be removed on ${headers.sunset}${deprecationLink ? `. See ${deprecationLink}` : ""}`); + } + + if (status === 204 || status === 205) { + return; + } // GitHub API returns 200 for HEAD requests + + + if (requestOptions.method === "HEAD") { + if (status < 400) { + return; + } + + throw new requestError.RequestError(response.statusText, status, { + response: { + url, + status, + headers, + data: undefined + }, + request: requestOptions + }); + } + + if (status === 304) { + throw new requestError.RequestError("Not modified", status, { + response: { + url, + status, + headers, + data: await getResponseData(response) + }, + request: requestOptions + }); + } + + if (status >= 400) { + const data = await getResponseData(response); + const error = new requestError.RequestError(toErrorMessage(data), status, { + response: { + url, + status, + headers, + data + }, + request: requestOptions + }); + throw error; + } + + return getResponseData(response); + }).then(data => { + return { + status, + url, + headers, + data + }; + }).catch(error => { + if (error instanceof requestError.RequestError) throw error; + throw new requestError.RequestError(error.message, 500, { + request: requestOptions + }); + }); +} + +async function getResponseData(response) { + const contentType = response.headers.get("content-type"); + + if (/application\/json/.test(contentType)) { + return response.json(); + } + + if (!contentType || /^text\/|charset=utf-8$/.test(contentType)) { + return response.text(); + } + + return getBufferResponse(response); +} + +function toErrorMessage(data) { + if (typeof data === "string") return data; // istanbul ignore else - just in case + + if ("message" in data) { + if (Array.isArray(data.errors)) { + return `${data.message}: ${data.errors.map(JSON.stringify).join(", ")}`; + } + + return data.message; + } // istanbul ignore next - just in case + + + return `Unknown error: ${JSON.stringify(data)}`; +} + +function withDefaults(oldEndpoint, newDefaults) { + const endpoint = oldEndpoint.defaults(newDefaults); + + const newApi = function (route, parameters) { + const endpointOptions = endpoint.merge(route, parameters); + + if (!endpointOptions.request || !endpointOptions.request.hook) { + return fetchWrapper(endpoint.parse(endpointOptions)); + } + + const request = (route, parameters) => { + return fetchWrapper(endpoint.parse(endpoint.merge(route, parameters))); + }; + + Object.assign(request, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); + return endpointOptions.request.hook(request, endpointOptions); + }; + + return Object.assign(newApi, { + endpoint, + defaults: withDefaults.bind(null, endpoint) + }); +} + +const request = withDefaults(endpoint.endpoint, { + headers: { + "user-agent": `octokit-request.js/${VERSION} ${universalUserAgent.getUserAgent()}` + } +}); + +exports.request = request; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 82882: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['BF.ADD', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 20690: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['BF.CARD', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 5760: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, item) { + return ['BF.EXISTS', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 5572: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['BF.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + capacity: reply[1], + size: reply[3], + numberOfFilters: reply[5], + numberOfInsertedItems: reply[7], + expansionRate: reply[9] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 70936: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items, options) { + const args = ['BF.INSERT', key]; + if (options?.CAPACITY) { + args.push('CAPACITY', options.CAPACITY.toString()); + } + if (options?.ERROR) { + args.push('ERROR', options.ERROR.toString()); + } + if (options?.EXPANSION) { + args.push('EXPANSION', options.EXPANSION.toString()); + } + if (options?.NOCREATE) { + args.push('NOCREATE'); + } + if (options?.NONSCALING) { + args.push('NONSCALING'); + } + args.push('ITEMS'); + return (0, generic_transformers_1.pushVerdictArguments)(args, items); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 2686: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, iteretor, chunk) { + return ['BF.LOADCHUNK', key, iteretor.toString(), chunk]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 81682: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + return ['BF.MADD', key, ...items]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 90561: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return ['BF.MEXISTS', key, ...items]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 7188: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, errorRate, capacity, options) { + const args = ['BF.RESERVE', key, errorRate.toString(), capacity.toString()]; + if (options?.EXPANSION) { + args.push('EXPANSION', options.EXPANSION.toString()); + } + if (options?.NONSCALING) { + args.push('NONSCALING'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12049: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, iterator) { + return ['BF.SCANDUMP', key, iterator.toString()]; +} +exports.transformArguments = transformArguments; +function transformReply([iterator, chunk]) { + return { + iterator, + chunk + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 38212: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const ADD = __nccwpck_require__(82882); +const CARD = __nccwpck_require__(20690); +const EXISTS = __nccwpck_require__(5760); +const INFO = __nccwpck_require__(5572); +const INSERT = __nccwpck_require__(70936); +const LOADCHUNK = __nccwpck_require__(2686); +const MADD = __nccwpck_require__(81682); +const MEXISTS = __nccwpck_require__(90561); +const RESERVE = __nccwpck_require__(7188); +const SCANDUMP = __nccwpck_require__(12049); +exports["default"] = { + ADD, + add: ADD, + CARD, + card: CARD, + EXISTS, + exists: EXISTS, + INFO, + info: INFO, + INSERT, + insert: INSERT, + LOADCHUNK, + loadChunk: LOADCHUNK, + MADD, + mAdd: MADD, + MEXISTS, + mExists: MEXISTS, + RESERVE, + reserve: RESERVE, + SCANDUMP, + scanDump: SCANDUMP +}; + + +/***/ }), + +/***/ 66295: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + const args = ['CMS.INCRBY', key]; + if (Array.isArray(items)) { + for (const item of items) { + pushIncrByItem(args, item); + } + } + else { + pushIncrByItem(args, items); + } + return args; +} +exports.transformArguments = transformArguments; +function pushIncrByItem(args, { item, incrementBy }) { + args.push(item, incrementBy.toString()); +} + + +/***/ }), + +/***/ 55250: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['CMS.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + width: reply[1], + depth: reply[3], + count: reply[5] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 43269: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, width, depth) { + return ['CMS.INITBYDIM', key, width.toString(), depth.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 19844: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, error, probability) { + return ['CMS.INITBYPROB', key, error.toString(), probability.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 8885: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(dest, src) { + const args = [ + 'CMS.MERGE', + dest, + src.length.toString() + ]; + if (isStringSketches(src)) { + args.push(...src); + } + else { + for (const sketch of src) { + args.push(sketch.name); + } + args.push('WEIGHTS'); + for (const sketch of src) { + args.push(sketch.weight.toString()); + } + } + return args; +} +exports.transformArguments = transformArguments; +function isStringSketches(src) { + return typeof src[0] === 'string'; +} + + +/***/ }), + +/***/ 77513: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['CMS.QUERY', key], items); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 53925: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const INCRBY = __nccwpck_require__(66295); +const INFO = __nccwpck_require__(55250); +const INITBYDIM = __nccwpck_require__(43269); +const INITBYPROB = __nccwpck_require__(19844); +const MERGE = __nccwpck_require__(8885); +const QUERY = __nccwpck_require__(77513); +exports["default"] = { + INCRBY, + incrBy: INCRBY, + INFO, + info: INFO, + INITBYDIM, + initByDim: INITBYDIM, + INITBYPROB, + initByProb: INITBYPROB, + MERGE, + merge: MERGE, + QUERY, + query: QUERY +}; + + +/***/ }), + +/***/ 97055: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.ADD', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 12508: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.ADDNX', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 59543: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.COUNT', key, item]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 1380: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, item) { + return ['CF.DEL', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 14321: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, item) { + return ['CF.EXISTS', key, item]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 24124: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['CF.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + size: reply[1], + numberOfBuckets: reply[3], + numberOfFilters: reply[5], + numberOfInsertedItems: reply[7], + numberOfDeletedItems: reply[9], + bucketSize: reply[11], + expansionRate: reply[13], + maxIteration: reply[15] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 5456: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82009); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items, options) { + return (0, _1.pushInsertOptions)(['CF.INSERT', key], items, options); +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 22093: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82009); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items, options) { + return (0, _1.pushInsertOptions)(['CF.INSERTNX', key], items, options); +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 62891: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, iterator, chunk) { + return ['CF.LOADCHUNK', key, iterator.toString(), chunk]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 50134: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, capacity, options) { + const args = ['CF.RESERVE', key, capacity.toString()]; + if (options?.BUCKETSIZE) { + args.push('BUCKETSIZE', options.BUCKETSIZE.toString()); + } + if (options?.MAXITERATIONS) { + args.push('MAXITERATIONS', options.MAXITERATIONS.toString()); + } + if (options?.EXPANSION) { + args.push('EXPANSION', options.EXPANSION.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 19293: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, iterator) { + return ['CF.SCANDUMP', key, iterator.toString()]; +} +exports.transformArguments = transformArguments; +function transformReply([iterator, chunk]) { + return { + iterator, + chunk + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 82009: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.pushInsertOptions = void 0; +const ADD = __nccwpck_require__(97055); +const ADDNX = __nccwpck_require__(12508); +const COUNT = __nccwpck_require__(59543); +const DEL = __nccwpck_require__(1380); +const EXISTS = __nccwpck_require__(14321); +const INFO = __nccwpck_require__(24124); +const INSERT = __nccwpck_require__(5456); +const INSERTNX = __nccwpck_require__(22093); +const LOADCHUNK = __nccwpck_require__(62891); +const RESERVE = __nccwpck_require__(50134); +const SCANDUMP = __nccwpck_require__(19293); +const generic_transformers_1 = __nccwpck_require__(31204); +exports["default"] = { + ADD, + add: ADD, + ADDNX, + addNX: ADDNX, + COUNT, + count: COUNT, + DEL, + del: DEL, + EXISTS, + exists: EXISTS, + INFO, + info: INFO, + INSERT, + insert: INSERT, + INSERTNX, + insertNX: INSERTNX, + LOADCHUNK, + loadChunk: LOADCHUNK, + RESERVE, + reserve: RESERVE, + SCANDUMP, + scanDump: SCANDUMP +}; +function pushInsertOptions(args, items, options) { + if (options?.CAPACITY) { + args.push('CAPACITY'); + args.push(options.CAPACITY.toString()); + } + if (options?.NOCREATE) { + args.push('NOCREATE'); + } + args.push('ITEMS'); + return (0, generic_transformers_1.pushVerdictArguments)(args, items); +} +exports.pushInsertOptions = pushInsertOptions; + + +/***/ }), + +/***/ 61458: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const bloom_1 = __nccwpck_require__(38212); +const count_min_sketch_1 = __nccwpck_require__(53925); +const cuckoo_1 = __nccwpck_require__(82009); +const t_digest_1 = __nccwpck_require__(12997); +const top_k_1 = __nccwpck_require__(77441); +exports["default"] = { + bf: bloom_1.default, + cms: count_min_sketch_1.default, + cf: cuckoo_1.default, + tDigest: t_digest_1.default, + topK: top_k_1.default +}; + + +/***/ }), + +/***/ 93876: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, values) { + const args = ['TDIGEST.ADD', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99190: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, ranks) { + const args = ['TDIGEST.BYRANK', key]; + for (const rank of ranks) { + args.push(rank.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoublesReply; } })); + + +/***/ }), + +/***/ 95546: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, ranks) { + const args = ['TDIGEST.BYREVRANK', key]; + for (const rank of ranks) { + args.push(rank.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoublesReply; } })); + + +/***/ }), + +/***/ 79783: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, values) { + const args = ['TDIGEST.CDF', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoublesReply; } })); + + +/***/ }), + +/***/ 27359: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12997); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + return (0, _1.pushCompressionArgument)(['TDIGEST.CREATE', key], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 75656: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return [ + 'TDIGEST.INFO', + key + ]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + comperssion: reply[1], + capacity: reply[3], + mergedNodes: reply[5], + unmergedNodes: reply[7], + mergedWeight: Number(reply[9]), + unmergedWeight: Number(reply[11]), + totalCompression: reply[13] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 77153: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return [ + 'TDIGEST.MAX', + key + ]; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoubleReply; } })); + + +/***/ }), + +/***/ 60970: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +const _1 = __nccwpck_require__(12997); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destKey, srcKeys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['TDIGEST.MERGE', destKey], srcKeys); + (0, _1.pushCompressionArgument)(args, options); + if (options?.OVERRIDE) { + args.push('OVERRIDE'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 15116: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return [ + 'TDIGEST.MIN', + key + ]; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoubleReply; } })); + + +/***/ }), + +/***/ 55151: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, quantiles) { + const args = [ + 'TDIGEST.QUANTILE', + key + ]; + for (const quantile of quantiles) { + args.push(quantile.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoublesReply; } })); + + +/***/ }), + +/***/ 32833: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, values) { + const args = ['TDIGEST.RANK', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 39226: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['TDIGEST.RESET', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 44062: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, values) { + const args = ['TDIGEST.REVRANK', key]; + for (const item of values) { + args.push(item.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 19673: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, lowCutPercentile, highCutPercentile) { + return [ + 'TDIGEST.TRIMMED_MEAN', + key, + lowCutPercentile.toString(), + highCutPercentile.toString() + ]; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(12997); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformDoubleReply; } })); + + +/***/ }), + +/***/ 12997: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformDoublesReply = exports.transformDoubleReply = exports.pushCompressionArgument = void 0; +const ADD = __nccwpck_require__(93876); +const BYRANK = __nccwpck_require__(99190); +const BYREVRANK = __nccwpck_require__(95546); +const CDF = __nccwpck_require__(79783); +const CREATE = __nccwpck_require__(27359); +const INFO = __nccwpck_require__(75656); +const MAX = __nccwpck_require__(77153); +const MERGE = __nccwpck_require__(60970); +const MIN = __nccwpck_require__(15116); +const QUANTILE = __nccwpck_require__(55151); +const RANK = __nccwpck_require__(32833); +const RESET = __nccwpck_require__(39226); +const REVRANK = __nccwpck_require__(44062); +const TRIMMED_MEAN = __nccwpck_require__(19673); +exports["default"] = { + ADD, + add: ADD, + BYRANK, + byRank: BYRANK, + BYREVRANK, + byRevRank: BYREVRANK, + CDF, + cdf: CDF, + CREATE, + create: CREATE, + INFO, + info: INFO, + MAX, + max: MAX, + MERGE, + merge: MERGE, + MIN, + min: MIN, + QUANTILE, + quantile: QUANTILE, + RANK, + rank: RANK, + RESET, + reset: RESET, + REVRANK, + revRank: REVRANK, + TRIMMED_MEAN, + trimmedMean: TRIMMED_MEAN +}; +function pushCompressionArgument(args, options) { + if (options?.COMPRESSION) { + args.push('COMPRESSION', options.COMPRESSION.toString()); + } + return args; +} +exports.pushCompressionArgument = pushCompressionArgument; +function transformDoubleReply(reply) { + switch (reply) { + case 'inf': + return Infinity; + case '-inf': + return -Infinity; + case 'nan': + return NaN; + default: + return parseFloat(reply); + } +} +exports.transformDoubleReply = transformDoubleReply; +function transformDoublesReply(reply) { + return reply.map(transformDoubleReply); +} +exports.transformDoublesReply = transformDoublesReply; + + +/***/ }), + +/***/ 9877: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.ADD', key], items); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 18734: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.COUNT', key], items); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 43168: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, items) { + const args = ['TOPK.INCRBY', key]; + if (Array.isArray(items)) { + for (const item of items) { + pushIncrByItem(args, item); + } + } + else { + pushIncrByItem(args, items); + } + return args; +} +exports.transformArguments = transformArguments; +function pushIncrByItem(args, { item, incrementBy }) { + args.push(item, incrementBy.toString()); +} + + +/***/ }), + +/***/ 76769: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TOPK.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + k: reply[1], + width: reply[3], + depth: reply[5], + decay: Number(reply[7]) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 71162: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TOPK.LIST', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 632: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TOPK.LIST', key, 'WITHCOUNT']; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const reply = []; + for (let i = 0; i < rawReply.length; i++) { + reply.push({ + item: rawReply[i], + count: rawReply[++i] + }); + } + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 90365: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, items) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOPK.QUERY', key], items); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 79820: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, topK, options) { + const args = ['TOPK.RESERVE', key, topK.toString()]; + if (options) { + args.push(options.width.toString(), options.depth.toString(), options.decay.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 77441: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const ADD = __nccwpck_require__(9877); +const COUNT = __nccwpck_require__(18734); +const INCRBY = __nccwpck_require__(43168); +const INFO = __nccwpck_require__(76769); +const LIST_WITHCOUNT = __nccwpck_require__(632); +const LIST = __nccwpck_require__(71162); +const QUERY = __nccwpck_require__(90365); +const RESERVE = __nccwpck_require__(79820); +exports["default"] = { + ADD, + add: ADD, + COUNT, + count: COUNT, + INCRBY, + incrBy: INCRBY, + INFO, + info: INFO, + LIST_WITHCOUNT, + listWithCount: LIST_WITHCOUNT, + LIST, + list: LIST, + QUERY, + query: QUERY, + RESERVE, + reserve: RESERVE +}; + + +/***/ }), + +/***/ 375: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = void 0; +var commands_1 = __nccwpck_require__(61458); +Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return commands_1.default; } })); + + +/***/ }), + +/***/ 95077: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +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.RedisFlushModes = exports.GeoReplyWith = exports.defineScript = exports.createCluster = exports.commandOptions = exports.createClient = void 0; +const client_1 = __nccwpck_require__(86927); +const cluster_1 = __nccwpck_require__(74328); +exports.createClient = client_1.default.create; +exports.commandOptions = client_1.default.commandOptions; +exports.createCluster = cluster_1.default.create; +var lua_script_1 = __nccwpck_require__(72945); +Object.defineProperty(exports, "defineScript", ({ enumerable: true, get: function () { return lua_script_1.defineScript; } })); +__exportStar(__nccwpck_require__(92711), exports); +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "GeoReplyWith", ({ enumerable: true, get: function () { return generic_transformers_1.GeoReplyWith; } })); +var FLUSHALL_1 = __nccwpck_require__(7727); +Object.defineProperty(exports, "RedisFlushModes", ({ enumerable: true, get: function () { return FLUSHALL_1.RedisFlushModes; } })); + + +/***/ }), + +/***/ 31035: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class BufferComposer { + constructor() { + Object.defineProperty(this, "chunks", { + enumerable: true, + configurable: true, + writable: true, + value: [] + }); + } + write(buffer) { + this.chunks.push(buffer); + } + end(buffer) { + this.write(buffer); + return Buffer.concat(this.chunks.splice(0)); + } + reset() { + this.chunks = []; + } +} +exports["default"] = BufferComposer; + + +/***/ }), + +/***/ 80282: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const string_decoder_1 = __nccwpck_require__(71576); +class StringComposer { + constructor() { + Object.defineProperty(this, "decoder", { + enumerable: true, + configurable: true, + writable: true, + value: new string_decoder_1.StringDecoder() + }); + Object.defineProperty(this, "string", { + enumerable: true, + configurable: true, + writable: true, + value: '' + }); + } + write(buffer) { + this.string += this.decoder.write(buffer); + } + end(buffer) { + const string = this.string + this.decoder.end(buffer); + this.string = ''; + return string; + } + reset() { + this.string = ''; + } +} +exports["default"] = StringComposer; + + +/***/ }), + +/***/ 95912: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const errors_1 = __nccwpck_require__(92711); +const buffer_1 = __nccwpck_require__(31035); +const string_1 = __nccwpck_require__(80282); +// RESP2 specification +// https://redis.io/topics/protocol +var Types; +(function (Types) { + Types[Types["SIMPLE_STRING"] = 43] = "SIMPLE_STRING"; + Types[Types["ERROR"] = 45] = "ERROR"; + Types[Types["INTEGER"] = 58] = "INTEGER"; + Types[Types["BULK_STRING"] = 36] = "BULK_STRING"; + Types[Types["ARRAY"] = 42] = "ARRAY"; // * +})(Types || (Types = {})); +var ASCII; +(function (ASCII) { + ASCII[ASCII["CR"] = 13] = "CR"; + ASCII[ASCII["ZERO"] = 48] = "ZERO"; + ASCII[ASCII["MINUS"] = 45] = "MINUS"; +})(ASCII || (ASCII = {})); +// Using TypeScript `private` and not the build-in `#` to avoid __classPrivateFieldGet and __classPrivateFieldSet +class RESP2Decoder { + constructor(options) { + Object.defineProperty(this, "options", { + enumerable: true, + configurable: true, + writable: true, + value: options + }); + Object.defineProperty(this, "cursor", { + enumerable: true, + configurable: true, + writable: true, + value: 0 + }); + Object.defineProperty(this, "type", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "bufferComposer", { + enumerable: true, + configurable: true, + writable: true, + value: new buffer_1.default() + }); + Object.defineProperty(this, "stringComposer", { + enumerable: true, + configurable: true, + writable: true, + value: new string_1.default() + }); + Object.defineProperty(this, "currentStringComposer", { + enumerable: true, + configurable: true, + writable: true, + value: this.stringComposer + }); + Object.defineProperty(this, "integer", { + enumerable: true, + configurable: true, + writable: true, + value: 0 + }); + Object.defineProperty(this, "isNegativeInteger", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "bulkStringRemainingLength", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "arraysInProcess", { + enumerable: true, + configurable: true, + writable: true, + value: [] + }); + Object.defineProperty(this, "initializeArray", { + enumerable: true, + configurable: true, + writable: true, + value: false + }); + Object.defineProperty(this, "arrayItemType", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + } + reset() { + this.cursor = 0; + this.type = undefined; + this.bufferComposer.reset(); + this.stringComposer.reset(); + this.currentStringComposer = this.stringComposer; + } + write(chunk) { + while (this.cursor < chunk.length) { + if (!this.type) { + this.currentStringComposer = this.options.returnStringsAsBuffers() ? + this.bufferComposer : + this.stringComposer; + this.type = chunk[this.cursor]; + if (++this.cursor >= chunk.length) + break; + } + const reply = this.parseType(chunk, this.type); + if (reply === undefined) + break; + this.type = undefined; + this.options.onReply(reply); + } + this.cursor -= chunk.length; + } + parseType(chunk, type, arraysToKeep) { + switch (type) { + case Types.SIMPLE_STRING: + return this.parseSimpleString(chunk); + case Types.ERROR: + return this.parseError(chunk); + case Types.INTEGER: + return this.parseInteger(chunk); + case Types.BULK_STRING: + return this.parseBulkString(chunk); + case Types.ARRAY: + return this.parseArray(chunk, arraysToKeep); + } + } + compose(chunk, composer) { + for (let i = this.cursor; i < chunk.length; i++) { + if (chunk[i] === ASCII.CR) { + const reply = composer.end(chunk.subarray(this.cursor, i)); + this.cursor = i + 2; + return reply; + } + } + const toWrite = chunk.subarray(this.cursor); + composer.write(toWrite); + this.cursor = chunk.length; + } + parseSimpleString(chunk) { + return this.compose(chunk, this.currentStringComposer); + } + parseError(chunk) { + const message = this.compose(chunk, this.stringComposer); + if (message !== undefined) { + return new errors_1.ErrorReply(message); + } + } + parseInteger(chunk) { + if (this.isNegativeInteger === undefined) { + this.isNegativeInteger = chunk[this.cursor] === ASCII.MINUS; + if (this.isNegativeInteger && ++this.cursor === chunk.length) + return; + } + do { + const byte = chunk[this.cursor]; + if (byte === ASCII.CR) { + const integer = this.isNegativeInteger ? -this.integer : this.integer; + this.integer = 0; + this.isNegativeInteger = undefined; + this.cursor += 2; + return integer; + } + this.integer = this.integer * 10 + byte - ASCII.ZERO; + } while (++this.cursor < chunk.length); + } + parseBulkString(chunk) { + if (this.bulkStringRemainingLength === undefined) { + const length = this.parseInteger(chunk); + if (length === undefined) + return; + if (length === -1) + return null; + this.bulkStringRemainingLength = length; + if (this.cursor >= chunk.length) + return; + } + const end = this.cursor + this.bulkStringRemainingLength; + if (chunk.length >= end) { + const reply = this.currentStringComposer.end(chunk.subarray(this.cursor, end)); + this.bulkStringRemainingLength = undefined; + this.cursor = end + 2; + return reply; + } + const toWrite = chunk.subarray(this.cursor); + this.currentStringComposer.write(toWrite); + this.bulkStringRemainingLength -= toWrite.length; + this.cursor = chunk.length; + } + parseArray(chunk, arraysToKeep = 0) { + if (this.initializeArray || this.arraysInProcess.length === arraysToKeep) { + const length = this.parseInteger(chunk); + if (length === undefined) { + this.initializeArray = true; + return undefined; + } + this.initializeArray = false; + this.arrayItemType = undefined; + if (length === -1) { + return this.returnArrayReply(null, arraysToKeep, chunk); + } + else if (length === 0) { + return this.returnArrayReply([], arraysToKeep, chunk); + } + this.arraysInProcess.push({ + array: new Array(length), + pushCounter: 0 + }); + } + while (this.cursor < chunk.length) { + if (!this.arrayItemType) { + this.arrayItemType = chunk[this.cursor]; + if (++this.cursor >= chunk.length) + break; + } + const item = this.parseType(chunk, this.arrayItemType, arraysToKeep + 1); + if (item === undefined) + break; + this.arrayItemType = undefined; + const reply = this.pushArrayItem(item, arraysToKeep); + if (reply !== undefined) + return reply; + } + } + returnArrayReply(reply, arraysToKeep, chunk) { + if (this.arraysInProcess.length <= arraysToKeep) + return reply; + return this.pushArrayItem(reply, arraysToKeep, chunk); + } + pushArrayItem(item, arraysToKeep, chunk) { + const to = this.arraysInProcess[this.arraysInProcess.length - 1]; + to.array[to.pushCounter] = item; + if (++to.pushCounter === to.array.length) { + return this.returnArrayReply(this.arraysInProcess.pop().array, arraysToKeep, chunk); + } + else if (chunk && chunk.length > this.cursor) { + return this.parseArray(chunk, arraysToKeep); + } + } +} +exports["default"] = RESP2Decoder; + + +/***/ }), + +/***/ 64754: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const CRLF = '\r\n'; +function encodeCommand(args) { + const toWrite = []; + let strings = '*' + args.length + CRLF; + for (let i = 0; i < args.length; i++) { + const arg = args[i]; + if (typeof arg === 'string') { + strings += '$' + Buffer.byteLength(arg) + CRLF + arg + CRLF; + } + else if (arg instanceof Buffer) { + toWrite.push(strings + '$' + arg.length.toString() + CRLF, arg); + strings = CRLF; + } + else { + throw new TypeError('Invalid argument type'); + } + } + toWrite.push(strings); + return toWrite; +} +exports["default"] = encodeCommand; + + +/***/ }), + +/***/ 8500: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +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, 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 _RedisCommandsQueue_instances, _a, _RedisCommandsQueue_flushQueue, _RedisCommandsQueue_maxLength, _RedisCommandsQueue_waitingToBeSent, _RedisCommandsQueue_waitingForReply, _RedisCommandsQueue_onShardedChannelMoved, _RedisCommandsQueue_pubSub, _RedisCommandsQueue_chainInExecution, _RedisCommandsQueue_decoder, _RedisCommandsQueue_pushPubSubCommand; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const LinkedList = __nccwpck_require__(29914); +const errors_1 = __nccwpck_require__(92711); +const decoder_1 = __nccwpck_require__(95912); +const encoder_1 = __nccwpck_require__(64754); +const pub_sub_1 = __nccwpck_require__(2244); +const PONG = Buffer.from('pong'); +class RedisCommandsQueue { + get isPubSubActive() { + return __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").isActive; + } + constructor(maxLength, onShardedChannelMoved) { + _RedisCommandsQueue_instances.add(this); + _RedisCommandsQueue_maxLength.set(this, void 0); + _RedisCommandsQueue_waitingToBeSent.set(this, new LinkedList()); + _RedisCommandsQueue_waitingForReply.set(this, new LinkedList()); + _RedisCommandsQueue_onShardedChannelMoved.set(this, void 0); + _RedisCommandsQueue_pubSub.set(this, new pub_sub_1.PubSub()); + _RedisCommandsQueue_chainInExecution.set(this, void 0); + _RedisCommandsQueue_decoder.set(this, new decoder_1.default({ + returnStringsAsBuffers: () => { + return !!__classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").head?.value.returnBuffers || + __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").isActive; + }, + onReply: reply => { + if (__classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").isActive && Array.isArray(reply)) { + if (__classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").handleMessageReply(reply)) + return; + const isShardedUnsubscribe = pub_sub_1.PubSub.isShardedUnsubscribe(reply); + if (isShardedUnsubscribe && !__classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").length) { + const channel = reply[1].toString(); + __classPrivateFieldGet(this, _RedisCommandsQueue_onShardedChannelMoved, "f").call(this, channel, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").removeShardedListeners(channel)); + return; + } + else if (isShardedUnsubscribe || pub_sub_1.PubSub.isStatusReply(reply)) { + const head = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").head.value; + if ((Number.isNaN(head.channelsCounter) && reply[2] === 0) || + --head.channelsCounter === 0) { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").shift().resolve(); + } + return; + } + if (PONG.equals(reply[0])) { + const { resolve, returnBuffers } = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").shift(), buffer = (reply[1].length === 0 ? reply[0] : reply[1]); + resolve(returnBuffers ? buffer : buffer.toString()); + return; + } + } + const { resolve, reject } = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").shift(); + if (reply instanceof errors_1.ErrorReply) { + reject(reply); + } + else { + resolve(reply); + } + } + })); + __classPrivateFieldSet(this, _RedisCommandsQueue_maxLength, maxLength, "f"); + __classPrivateFieldSet(this, _RedisCommandsQueue_onShardedChannelMoved, onShardedChannelMoved, "f"); + } + addCommand(args, options) { + if (__classPrivateFieldGet(this, _RedisCommandsQueue_maxLength, "f") && __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").length + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").length >= __classPrivateFieldGet(this, _RedisCommandsQueue_maxLength, "f")) { + return Promise.reject(new Error('The queue is full')); + } + else if (options?.signal?.aborted) { + return Promise.reject(new errors_1.AbortError()); + } + return new Promise((resolve, reject) => { + const node = new LinkedList.Node({ + args, + chainId: options?.chainId, + returnBuffers: options?.returnBuffers, + resolve, + reject + }); + if (options?.signal) { + const listener = () => { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").removeNode(node); + node.value.reject(new errors_1.AbortError()); + }; + node.value.abort = { + signal: options.signal, + listener + }; + // AbortSignal type is incorrent + options.signal.addEventListener('abort', listener, { + once: true + }); + } + if (options?.asap) { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").unshiftNode(node); + } + else { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").pushNode(node); + } + }); + } + subscribe(type, channels, listener, returnBuffers) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").subscribe(type, channels, listener, returnBuffers)); + } + unsubscribe(type, channels, listener, returnBuffers) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").unsubscribe(type, channels, listener, returnBuffers)); + } + resubscribe() { + const commands = __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").resubscribe(); + if (!commands.length) + return; + return Promise.all(commands.map(command => __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, command))); + } + extendPubSubChannelListeners(type, channel, listeners) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").extendChannelListeners(type, channel, listeners)); + } + extendPubSubListeners(type, listeners) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_instances, "m", _RedisCommandsQueue_pushPubSubCommand).call(this, __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").extendTypeListeners(type, listeners)); + } + getPubSubListeners(type) { + return __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").getTypeListeners(type); + } + getCommandToSend() { + const toSend = __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").shift(); + if (!toSend) + return; + let encoded; + try { + encoded = (0, encoder_1.default)(toSend.args); + } + catch (err) { + toSend.reject(err); + return; + } + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f").push({ + resolve: toSend.resolve, + reject: toSend.reject, + channelsCounter: toSend.channelsCounter, + returnBuffers: toSend.returnBuffers + }); + __classPrivateFieldSet(this, _RedisCommandsQueue_chainInExecution, toSend.chainId, "f"); + return encoded; + } + onReplyChunk(chunk) { + __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, "f").write(chunk); + } + flushWaitingForReply(err) { + __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, "f").reset(); + __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").reset(); + __classPrivateFieldGet(RedisCommandsQueue, _a, "m", _RedisCommandsQueue_flushQueue).call(RedisCommandsQueue, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f"), err); + if (!__classPrivateFieldGet(this, _RedisCommandsQueue_chainInExecution, "f")) + return; + while (__classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").head?.value.chainId === __classPrivateFieldGet(this, _RedisCommandsQueue_chainInExecution, "f")) { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").shift(); + } + __classPrivateFieldSet(this, _RedisCommandsQueue_chainInExecution, undefined, "f"); + } + flushAll(err) { + __classPrivateFieldGet(this, _RedisCommandsQueue_decoder, "f").reset(); + __classPrivateFieldGet(this, _RedisCommandsQueue_pubSub, "f").reset(); + __classPrivateFieldGet(RedisCommandsQueue, _a, "m", _RedisCommandsQueue_flushQueue).call(RedisCommandsQueue, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingForReply, "f"), err); + __classPrivateFieldGet(RedisCommandsQueue, _a, "m", _RedisCommandsQueue_flushQueue).call(RedisCommandsQueue, __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f"), err); + } +} +exports["default"] = RedisCommandsQueue; +_a = RedisCommandsQueue, _RedisCommandsQueue_maxLength = new WeakMap(), _RedisCommandsQueue_waitingToBeSent = new WeakMap(), _RedisCommandsQueue_waitingForReply = new WeakMap(), _RedisCommandsQueue_onShardedChannelMoved = new WeakMap(), _RedisCommandsQueue_pubSub = new WeakMap(), _RedisCommandsQueue_chainInExecution = new WeakMap(), _RedisCommandsQueue_decoder = new WeakMap(), _RedisCommandsQueue_instances = new WeakSet(), _RedisCommandsQueue_flushQueue = function _RedisCommandsQueue_flushQueue(queue, err) { + while (queue.length) { + queue.shift().reject(err); + } +}, _RedisCommandsQueue_pushPubSubCommand = function _RedisCommandsQueue_pushPubSubCommand(command) { + if (command === undefined) + return; + return new Promise((resolve, reject) => { + __classPrivateFieldGet(this, _RedisCommandsQueue_waitingToBeSent, "f").push({ + args: command.args, + channelsCounter: command.channelsCounter, + returnBuffers: true, + resolve: () => { + command.resolve(); + resolve(); + }, + reject: err => { + command.reject?.(); + reject(err); + } + }); + }); +}; + + +/***/ }), + +/***/ 66430: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const commands_1 = __nccwpck_require__(34254); +const ACL_CAT = __nccwpck_require__(30188); +const ACL_DELUSER = __nccwpck_require__(51895); +const ACL_DRYRUN = __nccwpck_require__(35724); +const ACL_GENPASS = __nccwpck_require__(94260); +const ACL_GETUSER = __nccwpck_require__(56045); +const ACL_LIST = __nccwpck_require__(96496); +const ACL_LOAD = __nccwpck_require__(37054); +const ACL_LOG_RESET = __nccwpck_require__(48623); +const ACL_LOG = __nccwpck_require__(75958); +const ACL_SAVE = __nccwpck_require__(96276); +const ACL_SETUSER = __nccwpck_require__(90370); +const ACL_USERS = __nccwpck_require__(53933); +const ACL_WHOAMI = __nccwpck_require__(15164); +const ASKING = __nccwpck_require__(99555); +const AUTH = __nccwpck_require__(63181); +const BGREWRITEAOF = __nccwpck_require__(10063); +const BGSAVE = __nccwpck_require__(91872); +const CLIENT_CACHING = __nccwpck_require__(45070); +const CLIENT_GETNAME = __nccwpck_require__(236); +const CLIENT_GETREDIR = __nccwpck_require__(87963); +const CLIENT_ID = __nccwpck_require__(95572); +const CLIENT_KILL = __nccwpck_require__(28984); +const CLIENT_LIST = __nccwpck_require__(50785); +const CLIENT_NO_EVICT = __nccwpck_require__(50955); +const CLIENT_PAUSE = __nccwpck_require__(50131); +const CLIENT_SETNAME = __nccwpck_require__(44169); +const CLIENT_TRACKING = __nccwpck_require__(94365); +const CLIENT_TRACKINGINFO = __nccwpck_require__(38747); +const CLIENT_UNPAUSE = __nccwpck_require__(72211); +const CLIENT_INFO = __nccwpck_require__(35532); +const CLUSTER_ADDSLOTS = __nccwpck_require__(21546); +const CLUSTER_ADDSLOTSRANGE = __nccwpck_require__(53024); +const CLUSTER_BUMPEPOCH = __nccwpck_require__(25869); +const CLUSTER_COUNT_FAILURE_REPORTS = __nccwpck_require__(39495); +const CLUSTER_COUNTKEYSINSLOT = __nccwpck_require__(91738); +const CLUSTER_DELSLOTS = __nccwpck_require__(74514); +const CLUSTER_DELSLOTSRANGE = __nccwpck_require__(56968); +const CLUSTER_FAILOVER = __nccwpck_require__(91642); +const CLUSTER_FLUSHSLOTS = __nccwpck_require__(97291); +const CLUSTER_FORGET = __nccwpck_require__(31437); +const CLUSTER_GETKEYSINSLOT = __nccwpck_require__(42329); +const CLUSTER_INFO = __nccwpck_require__(33559); +const CLUSTER_KEYSLOT = __nccwpck_require__(89403); +const CLUSTER_LINKS = __nccwpck_require__(32483); +const CLUSTER_MEET = __nccwpck_require__(9657); +const CLUSTER_MYID = __nccwpck_require__(94178); +const CLUSTER_NODES = __nccwpck_require__(29457); +const CLUSTER_REPLICAS = __nccwpck_require__(69709); +const CLUSTER_REPLICATE = __nccwpck_require__(24540); +const CLUSTER_RESET = __nccwpck_require__(29827); +const CLUSTER_SAVECONFIG = __nccwpck_require__(28830); +const CLUSTER_SET_CONFIG_EPOCH = __nccwpck_require__(73061); +const CLUSTER_SETSLOT = __nccwpck_require__(21168); +const CLUSTER_SLOTS = __nccwpck_require__(96206); +const COMMAND_COUNT = __nccwpck_require__(28820); +const COMMAND_GETKEYS = __nccwpck_require__(86385); +const COMMAND_GETKEYSANDFLAGS = __nccwpck_require__(85975); +const COMMAND_INFO = __nccwpck_require__(97029); +const COMMAND_LIST = __nccwpck_require__(99213); +const COMMAND = __nccwpck_require__(20736); +const CONFIG_GET = __nccwpck_require__(68287); +const CONFIG_RESETASTAT = __nccwpck_require__(62848); +const CONFIG_REWRITE = __nccwpck_require__(30860); +const CONFIG_SET = __nccwpck_require__(37134); +const DBSIZE = __nccwpck_require__(16715); +const DISCARD = __nccwpck_require__(92556); +const ECHO = __nccwpck_require__(94631); +const FAILOVER = __nccwpck_require__(26708); +const FLUSHALL = __nccwpck_require__(7727); +const FLUSHDB = __nccwpck_require__(42484); +const FUNCTION_DELETE = __nccwpck_require__(26658); +const FUNCTION_DUMP = __nccwpck_require__(12334); +const FUNCTION_FLUSH = __nccwpck_require__(67149); +const FUNCTION_KILL = __nccwpck_require__(11476); +const FUNCTION_LIST_WITHCODE = __nccwpck_require__(10968); +const FUNCTION_LIST = __nccwpck_require__(63706); +const FUNCTION_LOAD = __nccwpck_require__(81736); +const FUNCTION_RESTORE = __nccwpck_require__(88175); +const FUNCTION_STATS = __nccwpck_require__(6476); +const HELLO = __nccwpck_require__(96969); +const INFO = __nccwpck_require__(98067); +const KEYS = __nccwpck_require__(84204); +const LASTSAVE = __nccwpck_require__(7280); +const LATENCY_DOCTOR = __nccwpck_require__(51549); +const LATENCY_GRAPH = __nccwpck_require__(14775); +const LOLWUT = __nccwpck_require__(78445); +const MEMORY_DOCTOR = __nccwpck_require__(14136); +const MEMORY_MALLOC_STATS = __nccwpck_require__(57360); +const MEMORY_PURGE = __nccwpck_require__(12023); +const MEMORY_STATS = __nccwpck_require__(83620); +const MEMORY_USAGE = __nccwpck_require__(8844); +const MODULE_LIST = __nccwpck_require__(45518); +const MODULE_LOAD = __nccwpck_require__(8892); +const MODULE_UNLOAD = __nccwpck_require__(99877); +const MOVE = __nccwpck_require__(27075); +const PING = __nccwpck_require__(52714); +const PUBSUB_CHANNELS = __nccwpck_require__(40904); +const PUBSUB_NUMPAT = __nccwpck_require__(13696); +const PUBSUB_NUMSUB = __nccwpck_require__(30541); +const PUBSUB_SHARDCHANNELS = __nccwpck_require__(35115); +const RANDOMKEY = __nccwpck_require__(81066); +const READONLY = __nccwpck_require__(81370); +const READWRITE = __nccwpck_require__(74306); +const REPLICAOF = __nccwpck_require__(46413); +const RESTORE_ASKING = __nccwpck_require__(68186); +const ROLE = __nccwpck_require__(99814); +const SAVE = __nccwpck_require__(73198); +const SCAN = __nccwpck_require__(12332); +const SCRIPT_DEBUG = __nccwpck_require__(44846); +const SCRIPT_EXISTS = __nccwpck_require__(83449); +const SCRIPT_FLUSH = __nccwpck_require__(68184); +const SCRIPT_KILL = __nccwpck_require__(32145); +const SCRIPT_LOAD = __nccwpck_require__(96495); +const SHUTDOWN = __nccwpck_require__(71960); +const SWAPDB = __nccwpck_require__(51870); +const TIME = __nccwpck_require__(89997); +const UNWATCH = __nccwpck_require__(18524); +const WAIT = __nccwpck_require__(79043); +exports["default"] = { + ...commands_1.default, + ACL_CAT, + aclCat: ACL_CAT, + ACL_DELUSER, + aclDelUser: ACL_DELUSER, + ACL_DRYRUN, + aclDryRun: ACL_DRYRUN, + ACL_GENPASS, + aclGenPass: ACL_GENPASS, + ACL_GETUSER, + aclGetUser: ACL_GETUSER, + ACL_LIST, + aclList: ACL_LIST, + ACL_LOAD, + aclLoad: ACL_LOAD, + ACL_LOG_RESET, + aclLogReset: ACL_LOG_RESET, + ACL_LOG, + aclLog: ACL_LOG, + ACL_SAVE, + aclSave: ACL_SAVE, + ACL_SETUSER, + aclSetUser: ACL_SETUSER, + ACL_USERS, + aclUsers: ACL_USERS, + ACL_WHOAMI, + aclWhoAmI: ACL_WHOAMI, + ASKING, + asking: ASKING, + AUTH, + auth: AUTH, + BGREWRITEAOF, + bgRewriteAof: BGREWRITEAOF, + BGSAVE, + bgSave: BGSAVE, + CLIENT_CACHING, + clientCaching: CLIENT_CACHING, + CLIENT_GETNAME, + clientGetName: CLIENT_GETNAME, + CLIENT_GETREDIR, + clientGetRedir: CLIENT_GETREDIR, + CLIENT_ID, + clientId: CLIENT_ID, + CLIENT_KILL, + clientKill: CLIENT_KILL, + 'CLIENT_NO-EVICT': CLIENT_NO_EVICT, + clientNoEvict: CLIENT_NO_EVICT, + CLIENT_LIST, + clientList: CLIENT_LIST, + CLIENT_PAUSE, + clientPause: CLIENT_PAUSE, + CLIENT_SETNAME, + clientSetName: CLIENT_SETNAME, + CLIENT_TRACKING, + clientTracking: CLIENT_TRACKING, + CLIENT_TRACKINGINFO, + clientTrackingInfo: CLIENT_TRACKINGINFO, + CLIENT_UNPAUSE, + clientUnpause: CLIENT_UNPAUSE, + CLIENT_INFO, + clientInfo: CLIENT_INFO, + CLUSTER_ADDSLOTS, + clusterAddSlots: CLUSTER_ADDSLOTS, + CLUSTER_ADDSLOTSRANGE, + clusterAddSlotsRange: CLUSTER_ADDSLOTSRANGE, + CLUSTER_BUMPEPOCH, + clusterBumpEpoch: CLUSTER_BUMPEPOCH, + CLUSTER_COUNT_FAILURE_REPORTS, + clusterCountFailureReports: CLUSTER_COUNT_FAILURE_REPORTS, + CLUSTER_COUNTKEYSINSLOT, + clusterCountKeysInSlot: CLUSTER_COUNTKEYSINSLOT, + CLUSTER_DELSLOTS, + clusterDelSlots: CLUSTER_DELSLOTS, + CLUSTER_DELSLOTSRANGE, + clusterDelSlotsRange: CLUSTER_DELSLOTSRANGE, + CLUSTER_FAILOVER, + clusterFailover: CLUSTER_FAILOVER, + CLUSTER_FLUSHSLOTS, + clusterFlushSlots: CLUSTER_FLUSHSLOTS, + CLUSTER_FORGET, + clusterForget: CLUSTER_FORGET, + CLUSTER_GETKEYSINSLOT, + clusterGetKeysInSlot: CLUSTER_GETKEYSINSLOT, + CLUSTER_INFO, + clusterInfo: CLUSTER_INFO, + CLUSTER_KEYSLOT, + clusterKeySlot: CLUSTER_KEYSLOT, + CLUSTER_LINKS, + clusterLinks: CLUSTER_LINKS, + CLUSTER_MEET, + clusterMeet: CLUSTER_MEET, + CLUSTER_MYID, + clusterMyId: CLUSTER_MYID, + CLUSTER_NODES, + clusterNodes: CLUSTER_NODES, + CLUSTER_REPLICAS, + clusterReplicas: CLUSTER_REPLICAS, + CLUSTER_REPLICATE, + clusterReplicate: CLUSTER_REPLICATE, + CLUSTER_RESET, + clusterReset: CLUSTER_RESET, + CLUSTER_SAVECONFIG, + clusterSaveConfig: CLUSTER_SAVECONFIG, + CLUSTER_SET_CONFIG_EPOCH, + clusterSetConfigEpoch: CLUSTER_SET_CONFIG_EPOCH, + CLUSTER_SETSLOT, + clusterSetSlot: CLUSTER_SETSLOT, + CLUSTER_SLOTS, + clusterSlots: CLUSTER_SLOTS, + COMMAND_COUNT, + commandCount: COMMAND_COUNT, + COMMAND_GETKEYS, + commandGetKeys: COMMAND_GETKEYS, + COMMAND_GETKEYSANDFLAGS, + commandGetKeysAndFlags: COMMAND_GETKEYSANDFLAGS, + COMMAND_INFO, + commandInfo: COMMAND_INFO, + COMMAND_LIST, + commandList: COMMAND_LIST, + COMMAND, + command: COMMAND, + CONFIG_GET, + configGet: CONFIG_GET, + CONFIG_RESETASTAT, + configResetStat: CONFIG_RESETASTAT, + CONFIG_REWRITE, + configRewrite: CONFIG_REWRITE, + CONFIG_SET, + configSet: CONFIG_SET, + DBSIZE, + dbSize: DBSIZE, + DISCARD, + discard: DISCARD, + ECHO, + echo: ECHO, + FAILOVER, + failover: FAILOVER, + FLUSHALL, + flushAll: FLUSHALL, + FLUSHDB, + flushDb: FLUSHDB, + FUNCTION_DELETE, + functionDelete: FUNCTION_DELETE, + FUNCTION_DUMP, + functionDump: FUNCTION_DUMP, + FUNCTION_FLUSH, + functionFlush: FUNCTION_FLUSH, + FUNCTION_KILL, + functionKill: FUNCTION_KILL, + FUNCTION_LIST_WITHCODE, + functionListWithCode: FUNCTION_LIST_WITHCODE, + FUNCTION_LIST, + functionList: FUNCTION_LIST, + FUNCTION_LOAD, + functionLoad: FUNCTION_LOAD, + FUNCTION_RESTORE, + functionRestore: FUNCTION_RESTORE, + FUNCTION_STATS, + functionStats: FUNCTION_STATS, + HELLO, + hello: HELLO, + INFO, + info: INFO, + KEYS, + keys: KEYS, + LASTSAVE, + lastSave: LASTSAVE, + LATENCY_DOCTOR, + latencyDoctor: LATENCY_DOCTOR, + LATENCY_GRAPH, + latencyGraph: LATENCY_GRAPH, + LOLWUT, + lolwut: LOLWUT, + MEMORY_DOCTOR, + memoryDoctor: MEMORY_DOCTOR, + 'MEMORY_MALLOC-STATS': MEMORY_MALLOC_STATS, + memoryMallocStats: MEMORY_MALLOC_STATS, + MEMORY_PURGE, + memoryPurge: MEMORY_PURGE, + MEMORY_STATS, + memoryStats: MEMORY_STATS, + MEMORY_USAGE, + memoryUsage: MEMORY_USAGE, + MODULE_LIST, + moduleList: MODULE_LIST, + MODULE_LOAD, + moduleLoad: MODULE_LOAD, + MODULE_UNLOAD, + moduleUnload: MODULE_UNLOAD, + MOVE, + move: MOVE, + PING, + ping: PING, + PUBSUB_CHANNELS, + pubSubChannels: PUBSUB_CHANNELS, + PUBSUB_NUMPAT, + pubSubNumPat: PUBSUB_NUMPAT, + PUBSUB_NUMSUB, + pubSubNumSub: PUBSUB_NUMSUB, + PUBSUB_SHARDCHANNELS, + pubSubShardChannels: PUBSUB_SHARDCHANNELS, + RANDOMKEY, + randomKey: RANDOMKEY, + READONLY, + readonly: READONLY, + READWRITE, + readwrite: READWRITE, + REPLICAOF, + replicaOf: REPLICAOF, + 'RESTORE-ASKING': RESTORE_ASKING, + restoreAsking: RESTORE_ASKING, + ROLE, + role: ROLE, + SAVE, + save: SAVE, + SCAN, + scan: SCAN, + SCRIPT_DEBUG, + scriptDebug: SCRIPT_DEBUG, + SCRIPT_EXISTS, + scriptExists: SCRIPT_EXISTS, + SCRIPT_FLUSH, + scriptFlush: SCRIPT_FLUSH, + SCRIPT_KILL, + scriptKill: SCRIPT_KILL, + SCRIPT_LOAD, + scriptLoad: SCRIPT_LOAD, + SHUTDOWN, + shutdown: SHUTDOWN, + SWAPDB, + swapDb: SWAPDB, + TIME, + time: TIME, + UNWATCH, + unwatch: UNWATCH, + WAIT, + wait: WAIT +}; + + +/***/ }), + +/***/ 86927: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +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, 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 _RedisClient_instances, _RedisClient_options, _RedisClient_socket, _RedisClient_queue, _RedisClient_isolationPool, _RedisClient_v4, _RedisClient_selectedDB, _RedisClient_initiateOptions, _RedisClient_initiateQueue, _RedisClient_initiateSocket, _RedisClient_legacyMode, _RedisClient_legacySendCommand, _RedisClient_defineLegacyCommand, _RedisClient_pingTimer, _RedisClient_setPingTimer, _RedisClient_sendCommand, _RedisClient_pubSubCommand, _RedisClient_tick, _RedisClient_addMultiCommands, _RedisClient_destroyIsolationPool; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const commands_1 = __nccwpck_require__(66430); +const socket_1 = __nccwpck_require__(49457); +const commands_queue_1 = __nccwpck_require__(8500); +const multi_command_1 = __nccwpck_require__(50467); +const events_1 = __nccwpck_require__(82361); +const command_options_1 = __nccwpck_require__(46318); +const commander_1 = __nccwpck_require__(45602); +const generic_pool_1 = __nccwpck_require__(27942); +const errors_1 = __nccwpck_require__(92711); +const url_1 = __nccwpck_require__(57310); +const pub_sub_1 = __nccwpck_require__(2244); +class RedisClient extends events_1.EventEmitter { + static commandOptions(options) { + return (0, command_options_1.commandOptions)(options); + } + static extend(extensions) { + const Client = (0, commander_1.attachExtensions)({ + BaseClass: RedisClient, + modulesExecutor: RedisClient.prototype.commandsExecutor, + modules: extensions?.modules, + functionsExecutor: RedisClient.prototype.functionsExecuter, + functions: extensions?.functions, + scriptsExecutor: RedisClient.prototype.scriptsExecuter, + scripts: extensions?.scripts + }); + if (Client !== RedisClient) { + Client.prototype.Multi = multi_command_1.default.extend(extensions); + } + return Client; + } + static create(options) { + return new (RedisClient.extend(options))(options); + } + static parseURL(url) { + // https://www.iana.org/assignments/uri-schemes/prov/redis + const { hostname, port, protocol, username, password, pathname } = new url_1.URL(url), parsed = { + socket: { + host: hostname + } + }; + if (protocol === 'rediss:') { + parsed.socket.tls = true; + } + else if (protocol !== 'redis:') { + throw new TypeError('Invalid protocol'); + } + if (port) { + parsed.socket.port = Number(port); + } + if (username) { + parsed.username = decodeURIComponent(username); + } + if (password) { + parsed.password = decodeURIComponent(password); + } + if (pathname.length > 1) { + const database = Number(pathname.substring(1)); + if (isNaN(database)) { + throw new TypeError('Invalid pathname'); + } + parsed.database = database; + } + return parsed; + } + get options() { + return __classPrivateFieldGet(this, _RedisClient_options, "f"); + } + get isOpen() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen; + } + get isReady() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").isReady; + } + get isPubSubActive() { + return __classPrivateFieldGet(this, _RedisClient_queue, "f").isPubSubActive; + } + get v4() { + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.legacyMode) { + throw new Error('the client is not in "legacy mode"'); + } + return __classPrivateFieldGet(this, _RedisClient_v4, "f"); + } + constructor(options) { + super(); + _RedisClient_instances.add(this); + Object.defineProperty(this, "commandOptions", { + enumerable: true, + configurable: true, + writable: true, + value: RedisClient.commandOptions + }); + _RedisClient_options.set(this, void 0); + _RedisClient_socket.set(this, void 0); + _RedisClient_queue.set(this, void 0); + _RedisClient_isolationPool.set(this, void 0); + _RedisClient_v4.set(this, {}); + _RedisClient_selectedDB.set(this, 0); + _RedisClient_pingTimer.set(this, void 0); + Object.defineProperty(this, "select", { + enumerable: true, + configurable: true, + writable: true, + value: this.SELECT + }); + Object.defineProperty(this, "subscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUBSCRIBE + }); + Object.defineProperty(this, "unsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.UNSUBSCRIBE + }); + Object.defineProperty(this, "pSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PSUBSCRIBE + }); + Object.defineProperty(this, "pUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PUNSUBSCRIBE + }); + Object.defineProperty(this, "sSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SSUBSCRIBE + }); + Object.defineProperty(this, "sUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUNSUBSCRIBE + }); + Object.defineProperty(this, "quit", { + enumerable: true, + configurable: true, + writable: true, + value: this.QUIT + }); + Object.defineProperty(this, "multi", { + enumerable: true, + configurable: true, + writable: true, + value: this.MULTI + }); + __classPrivateFieldSet(this, _RedisClient_options, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateOptions).call(this, options), "f"); + __classPrivateFieldSet(this, _RedisClient_queue, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateQueue).call(this), "f"); + __classPrivateFieldSet(this, _RedisClient_socket, __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_initiateSocket).call(this), "f"); + __classPrivateFieldSet(this, _RedisClient_isolationPool, (0, generic_pool_1.createPool)({ + create: async () => { + const duplicate = this.duplicate({ + isolationPoolOptions: undefined + }).on('error', err => this.emit('error', err)); + await duplicate.connect(); + return duplicate; + }, + destroy: client => client.disconnect() + }, options?.isolationPoolOptions), "f"); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_legacyMode).call(this); + } + duplicate(overrides) { + return new (Object.getPrototypeOf(this).constructor)({ + ...__classPrivateFieldGet(this, _RedisClient_options, "f"), + ...overrides + }); + } + connect() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").connect(); + } + async commandsExecutor(command, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(command, args); + return (0, commander_1.transformCommandReply)(command, await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, redisArgs, options), redisArgs.preserve); + } + sendCommand(args, options) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, args, options); + } + async functionsExecuter(fn, args, name) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(fn, args); + return (0, commander_1.transformCommandReply)(fn, await this.executeFunction(name, fn, redisArgs, options), redisArgs.preserve); + } + executeFunction(name, fn, args, options) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, (0, commander_1.fCallArguments)(name, fn, args), options); + } + async scriptsExecuter(script, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(script, args); + return (0, commander_1.transformCommandReply)(script, await this.executeScript(script, redisArgs, options), redisArgs.preserve); + } + async executeScript(script, args, options) { + const redisArgs = ['EVALSHA', script.SHA1]; + if (script.NUMBER_OF_KEYS !== undefined) { + redisArgs.push(script.NUMBER_OF_KEYS.toString()); + } + redisArgs.push(...args); + try { + return await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, redisArgs, options); + } + catch (err) { + if (!err?.message?.startsWith?.('NOSCRIPT')) { + throw err; + } + redisArgs[0] = 'EVAL'; + redisArgs[1] = script.SCRIPT; + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, redisArgs, options); + } + } + async SELECT(options, db) { + if (!(0, command_options_1.isCommandOptions)(options)) { + db = options; + options = null; + } + await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, ['SELECT', db.toString()], options); + __classPrivateFieldSet(this, _RedisClient_selectedDB, db, "f"); + } + SUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").subscribe(pub_sub_1.PubSubType.CHANNELS, channels, listener, bufferMode)); + } + UNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").unsubscribe(pub_sub_1.PubSubType.CHANNELS, channels, listener, bufferMode)); + } + PSUBSCRIBE(patterns, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").subscribe(pub_sub_1.PubSubType.PATTERNS, patterns, listener, bufferMode)); + } + PUNSUBSCRIBE(patterns, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").unsubscribe(pub_sub_1.PubSubType.PATTERNS, patterns, listener, bufferMode)); + } + SSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").subscribe(pub_sub_1.PubSubType.SHARDED, channels, listener, bufferMode)); + } + SUNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").unsubscribe(pub_sub_1.PubSubType.SHARDED, channels, listener, bufferMode)); + } + getPubSubListeners(type) { + return __classPrivateFieldGet(this, _RedisClient_queue, "f").getPubSubListeners(type); + } + extendPubSubChannelListeners(type, channel, listeners) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").extendPubSubChannelListeners(type, channel, listeners)); + } + extendPubSubListeners(type, listeners) { + return __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_pubSubCommand).call(this, __classPrivateFieldGet(this, _RedisClient_queue, "f").extendPubSubListeners(type, listeners)); + } + QUIT() { + return __classPrivateFieldGet(this, _RedisClient_socket, "f").quit(async () => { + const quitPromise = __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['QUIT']); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + const [reply] = await Promise.all([ + quitPromise, + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_destroyIsolationPool).call(this) + ]); + return reply; + }); + } + executeIsolated(fn) { + return __classPrivateFieldGet(this, _RedisClient_isolationPool, "f").use(fn); + } + MULTI() { + return new this.Multi(this.multiExecutor.bind(this), __classPrivateFieldGet(this, _RedisClient_options, "f")?.legacyMode); + } + async multiExecutor(commands, selectedDB, chainId) { + if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen) { + return Promise.reject(new errors_1.ClientClosedError()); + } + const promise = chainId ? + // if `chainId` has a value, it's a `MULTI` (and not "pipeline") - need to add the `MULTI` and `EXEC` commands + Promise.all([ + __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['MULTI'], { chainId }), + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_addMultiCommands).call(this, commands, chainId), + __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['EXEC'], { chainId }) + ]) : + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_addMultiCommands).call(this, commands); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + const results = await promise; + if (selectedDB !== undefined) { + __classPrivateFieldSet(this, _RedisClient_selectedDB, selectedDB, "f"); + } + return results; + } + async *scanIterator(options) { + let cursor = 0; + do { + const reply = await this.scan(cursor, options); + cursor = reply.cursor; + for (const key of reply.keys) { + yield key; + } + } while (cursor !== 0); + } + async *hScanIterator(key, options) { + let cursor = 0; + do { + const reply = await this.hScan(key, cursor, options); + cursor = reply.cursor; + for (const tuple of reply.tuples) { + yield tuple; + } + } while (cursor !== 0); + } + async *sScanIterator(key, options) { + let cursor = 0; + do { + const reply = await this.sScan(key, cursor, options); + cursor = reply.cursor; + for (const member of reply.members) { + yield member; + } + } while (cursor !== 0); + } + async *zScanIterator(key, options) { + let cursor = 0; + do { + const reply = await this.zScan(key, cursor, options); + cursor = reply.cursor; + for (const member of reply.members) { + yield member; + } + } while (cursor !== 0); + } + async disconnect() { + __classPrivateFieldGet(this, _RedisClient_queue, "f").flushAll(new errors_1.DisconnectsClientError()); + __classPrivateFieldGet(this, _RedisClient_socket, "f").disconnect(); + await __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_destroyIsolationPool).call(this); + } + ref() { + __classPrivateFieldGet(this, _RedisClient_socket, "f").ref(); + } + unref() { + __classPrivateFieldGet(this, _RedisClient_socket, "f").unref(); + } +} +exports["default"] = RedisClient; +_RedisClient_options = new WeakMap(), _RedisClient_socket = new WeakMap(), _RedisClient_queue = new WeakMap(), _RedisClient_isolationPool = new WeakMap(), _RedisClient_v4 = new WeakMap(), _RedisClient_selectedDB = new WeakMap(), _RedisClient_pingTimer = new WeakMap(), _RedisClient_instances = new WeakSet(), _RedisClient_initiateOptions = function _RedisClient_initiateOptions(options) { + if (options?.url) { + const parsed = RedisClient.parseURL(options.url); + if (options.socket) { + parsed.socket = Object.assign(options.socket, parsed.socket); + } + Object.assign(options, parsed); + } + if (options?.database) { + __classPrivateFieldSet(this, _RedisClient_selectedDB, options.database, "f"); + } + return options; +}, _RedisClient_initiateQueue = function _RedisClient_initiateQueue() { + return new commands_queue_1.default(__classPrivateFieldGet(this, _RedisClient_options, "f")?.commandsQueueMaxLength, (channel, listeners) => this.emit('sharded-channel-moved', channel, listeners)); +}, _RedisClient_initiateSocket = function _RedisClient_initiateSocket() { + const socketInitiator = async () => { + const promises = []; + if (__classPrivateFieldGet(this, _RedisClient_selectedDB, "f") !== 0) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(['SELECT', __classPrivateFieldGet(this, _RedisClient_selectedDB, "f").toString()], { asap: true })); + } + if (__classPrivateFieldGet(this, _RedisClient_options, "f")?.readonly) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(commands_1.default.READONLY.transformArguments(), { asap: true })); + } + if (__classPrivateFieldGet(this, _RedisClient_options, "f")?.name) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(commands_1.default.CLIENT_SETNAME.transformArguments(__classPrivateFieldGet(this, _RedisClient_options, "f").name), { asap: true })); + } + if (__classPrivateFieldGet(this, _RedisClient_options, "f")?.username || __classPrivateFieldGet(this, _RedisClient_options, "f")?.password) { + promises.push(__classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(commands_1.default.AUTH.transformArguments({ + username: __classPrivateFieldGet(this, _RedisClient_options, "f").username, + password: __classPrivateFieldGet(this, _RedisClient_options, "f").password ?? '' + }), { asap: true })); + } + const resubscribePromise = __classPrivateFieldGet(this, _RedisClient_queue, "f").resubscribe(); + if (resubscribePromise) { + promises.push(resubscribePromise); + } + if (promises.length) { + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this, true); + await Promise.all(promises); + } + }; + return new socket_1.default(socketInitiator, __classPrivateFieldGet(this, _RedisClient_options, "f")?.socket) + .on('data', chunk => __classPrivateFieldGet(this, _RedisClient_queue, "f").onReplyChunk(chunk)) + .on('error', err => { + this.emit('error', err); + if (__classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen && !__classPrivateFieldGet(this, _RedisClient_options, "f")?.disableOfflineQueue) { + __classPrivateFieldGet(this, _RedisClient_queue, "f").flushWaitingForReply(err); + } + else { + __classPrivateFieldGet(this, _RedisClient_queue, "f").flushAll(err); + } + }) + .on('connect', () => { + this.emit('connect'); + }) + .on('ready', () => { + this.emit('ready'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_setPingTimer).call(this); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + }) + .on('reconnecting', () => this.emit('reconnecting')) + .on('drain', () => __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this)) + .on('end', () => this.emit('end')); +}, _RedisClient_legacyMode = function _RedisClient_legacyMode() { + var _a, _b; + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.legacyMode) + return; + __classPrivateFieldGet(this, _RedisClient_v4, "f").sendCommand = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).bind(this); + this.sendCommand = (...args) => { + const result = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_legacySendCommand).call(this, ...args); + if (result) { + result.promise + .then(reply => result.callback(null, reply)) + .catch(err => result.callback(err)); + } + }; + for (const [name, command] of Object.entries(commands_1.default)) { + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, name, command); + (_a = this)[_b = name.toLowerCase()] ?? (_a[_b] = this[name]); + } + // hard coded commands + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'SELECT'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'select'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'SUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'subscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'PSUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'pSubscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'UNSUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'unsubscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'PUNSUBSCRIBE'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'pUnsubscribe'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'QUIT'); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_defineLegacyCommand).call(this, 'quit'); +}, _RedisClient_legacySendCommand = function _RedisClient_legacySendCommand(...args) { + const callback = typeof args[args.length - 1] === 'function' ? + args.pop() : + undefined; + const promise = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, (0, commander_1.transformLegacyCommandArguments)(args)); + if (callback) + return { + promise, + callback + }; + promise.catch(err => this.emit('error', err)); +}, _RedisClient_defineLegacyCommand = function _RedisClient_defineLegacyCommand(name, command) { + __classPrivateFieldGet(this, _RedisClient_v4, "f")[name] = this[name].bind(this); + this[name] = command && command.TRANSFORM_LEGACY_REPLY && command.transformReply ? + (...args) => { + const result = __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_legacySendCommand).call(this, name, ...args); + if (result) { + result.promise + .then(reply => result.callback(null, command.transformReply(reply))) + .catch(err => result.callback(err)); + } + } : + (...args) => this.sendCommand(name, ...args); +}, _RedisClient_setPingTimer = function _RedisClient_setPingTimer() { + if (!__classPrivateFieldGet(this, _RedisClient_options, "f")?.pingInterval || !__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady) + return; + clearTimeout(__classPrivateFieldGet(this, _RedisClient_pingTimer, "f")); + __classPrivateFieldSet(this, _RedisClient_pingTimer, setTimeout(() => { + if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady) + return; + // using #sendCommand to support legacy mode + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_sendCommand).call(this, ['PING']) + .then(reply => this.emit('ping-interval', reply)) + .catch(err => this.emit('error', err)) + .finally(() => __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_setPingTimer).call(this)); + }, __classPrivateFieldGet(this, _RedisClient_options, "f").pingInterval), "f"); +}, _RedisClient_sendCommand = function _RedisClient_sendCommand(args, options) { + if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isOpen) { + return Promise.reject(new errors_1.ClientClosedError()); + } + else if (options?.isolated) { + return this.executeIsolated(isolatedClient => isolatedClient.sendCommand(args, { + ...options, + isolated: false + })); + } + else if (!__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady && __classPrivateFieldGet(this, _RedisClient_options, "f")?.disableOfflineQueue) { + return Promise.reject(new errors_1.ClientOfflineError()); + } + const promise = __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(args, options); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + return promise; +}, _RedisClient_pubSubCommand = function _RedisClient_pubSubCommand(promise) { + if (promise === undefined) + return Promise.resolve(); + __classPrivateFieldGet(this, _RedisClient_instances, "m", _RedisClient_tick).call(this); + return promise; +}, _RedisClient_tick = function _RedisClient_tick(force = false) { + if (__classPrivateFieldGet(this, _RedisClient_socket, "f").writableNeedDrain || (!force && !__classPrivateFieldGet(this, _RedisClient_socket, "f").isReady)) { + return; + } + __classPrivateFieldGet(this, _RedisClient_socket, "f").cork(); + while (!__classPrivateFieldGet(this, _RedisClient_socket, "f").writableNeedDrain) { + const args = __classPrivateFieldGet(this, _RedisClient_queue, "f").getCommandToSend(); + if (args === undefined) + break; + __classPrivateFieldGet(this, _RedisClient_socket, "f").writeCommand(args); + } +}, _RedisClient_addMultiCommands = function _RedisClient_addMultiCommands(commands, chainId) { + return Promise.all(commands.map(({ args }) => __classPrivateFieldGet(this, _RedisClient_queue, "f").addCommand(args, { chainId }))); +}, _RedisClient_destroyIsolationPool = async function _RedisClient_destroyIsolationPool() { + await __classPrivateFieldGet(this, _RedisClient_isolationPool, "f").drain(); + await __classPrivateFieldGet(this, _RedisClient_isolationPool, "f").clear(); +}; +(0, commander_1.attachCommands)({ + BaseClass: RedisClient, + commands: commands_1.default, + executor: RedisClient.prototype.commandsExecutor +}); +RedisClient.prototype.Multi = multi_command_1.default; + + +/***/ }), + +/***/ 50467: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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 _RedisClientMultiCommand_instances, _RedisClientMultiCommand_multi, _RedisClientMultiCommand_executor, _RedisClientMultiCommand_selectedDB, _RedisClientMultiCommand_legacyMode, _RedisClientMultiCommand_defineLegacyCommand; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const commands_1 = __nccwpck_require__(66430); +const multi_command_1 = __nccwpck_require__(31755); +const commander_1 = __nccwpck_require__(45602); +class RedisClientMultiCommand { + static extend(extensions) { + return (0, commander_1.attachExtensions)({ + BaseClass: RedisClientMultiCommand, + modulesExecutor: RedisClientMultiCommand.prototype.commandsExecutor, + modules: extensions?.modules, + functionsExecutor: RedisClientMultiCommand.prototype.functionsExecutor, + functions: extensions?.functions, + scriptsExecutor: RedisClientMultiCommand.prototype.scriptsExecutor, + scripts: extensions?.scripts + }); + } + constructor(executor, legacyMode = false) { + _RedisClientMultiCommand_instances.add(this); + _RedisClientMultiCommand_multi.set(this, new multi_command_1.default()); + _RedisClientMultiCommand_executor.set(this, void 0); + Object.defineProperty(this, "v4", { + enumerable: true, + configurable: true, + writable: true, + value: {} + }); + _RedisClientMultiCommand_selectedDB.set(this, void 0); + Object.defineProperty(this, "select", { + enumerable: true, + configurable: true, + writable: true, + value: this.SELECT + }); + Object.defineProperty(this, "EXEC", { + enumerable: true, + configurable: true, + writable: true, + value: this.exec + }); + __classPrivateFieldSet(this, _RedisClientMultiCommand_executor, executor, "f"); + if (legacyMode) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_instances, "m", _RedisClientMultiCommand_legacyMode).call(this); + } + } + commandsExecutor(command, args) { + return this.addCommand(command.transformArguments(...args), command.transformReply); + } + SELECT(db, transformReply) { + __classPrivateFieldSet(this, _RedisClientMultiCommand_selectedDB, db, "f"); + return this.addCommand(['SELECT', db.toString()], transformReply); + } + addCommand(args, transformReply) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addCommand(args, transformReply); + return this; + } + functionsExecutor(fn, args, name) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addFunction(name, fn, args); + return this; + } + scriptsExecutor(script, args) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addScript(script, args); + return this; + } + async exec(execAsPipeline = false) { + if (execAsPipeline) { + return this.execAsPipeline(); + } + return __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").handleExecReplies(await __classPrivateFieldGet(this, _RedisClientMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClientMultiCommand_selectedDB, "f"), multi_command_1.default.generateChainId())); + } + async execAsPipeline() { + if (__classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").queue.length === 0) + return []; + return __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").transformReplies(await __classPrivateFieldGet(this, _RedisClientMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClientMultiCommand_selectedDB, "f"))); + } +} +exports["default"] = RedisClientMultiCommand; +_RedisClientMultiCommand_multi = new WeakMap(), _RedisClientMultiCommand_executor = new WeakMap(), _RedisClientMultiCommand_selectedDB = new WeakMap(), _RedisClientMultiCommand_instances = new WeakSet(), _RedisClientMultiCommand_legacyMode = function _RedisClientMultiCommand_legacyMode() { + var _a, _b; + this.v4.addCommand = this.addCommand.bind(this); + this.addCommand = (...args) => { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addCommand((0, commander_1.transformLegacyCommandArguments)(args)); + return this; + }; + this.v4.exec = this.exec.bind(this); + this.exec = (callback) => { + this.v4.exec() + .then((reply) => { + if (!callback) + return; + callback(null, reply); + }) + .catch((err) => { + if (!callback) { + // this.emit('error', err); + return; + } + callback(err); + }); + }; + for (const [name, command] of Object.entries(commands_1.default)) { + __classPrivateFieldGet(this, _RedisClientMultiCommand_instances, "m", _RedisClientMultiCommand_defineLegacyCommand).call(this, name, command); + (_a = this)[_b = name.toLowerCase()] ?? (_a[_b] = this[name]); + } +}, _RedisClientMultiCommand_defineLegacyCommand = function _RedisClientMultiCommand_defineLegacyCommand(name, command) { + this.v4[name] = this[name].bind(this.v4); + this[name] = command && command.TRANSFORM_LEGACY_REPLY && command.transformReply ? + (...args) => { + __classPrivateFieldGet(this, _RedisClientMultiCommand_multi, "f").addCommand([name, ...(0, commander_1.transformLegacyCommandArguments)(args)], command.transformReply); + return this; + } : + (...args) => this.addCommand(name, ...args); +}; +(0, commander_1.attachCommands)({ + BaseClass: RedisClientMultiCommand, + commands: commands_1.default, + executor: RedisClientMultiCommand.prototype.commandsExecutor +}); + + +/***/ }), + +/***/ 2244: +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +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, 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 _PubSub_instances, _a, _PubSub_channelsArray, _PubSub_listenersSet, _PubSub_subscribing, _PubSub_isActive, _PubSub_listeners, _PubSub_extendChannelListeners, _PubSub_unsubscribeCommand, _PubSub_updateIsActive, _PubSub_emitPubSubMessage; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.PubSub = exports.PubSubType = void 0; +var PubSubType; +(function (PubSubType) { + PubSubType["CHANNELS"] = "CHANNELS"; + PubSubType["PATTERNS"] = "PATTERNS"; + PubSubType["SHARDED"] = "SHARDED"; +})(PubSubType = exports.PubSubType || (exports.PubSubType = {})); +const COMMANDS = { + [PubSubType.CHANNELS]: { + subscribe: Buffer.from('subscribe'), + unsubscribe: Buffer.from('unsubscribe'), + message: Buffer.from('message') + }, + [PubSubType.PATTERNS]: { + subscribe: Buffer.from('psubscribe'), + unsubscribe: Buffer.from('punsubscribe'), + message: Buffer.from('pmessage') + }, + [PubSubType.SHARDED]: { + subscribe: Buffer.from('ssubscribe'), + unsubscribe: Buffer.from('sunsubscribe'), + message: Buffer.from('smessage') + } +}; +class PubSub { + constructor() { + _PubSub_instances.add(this); + _PubSub_subscribing.set(this, 0); + _PubSub_isActive.set(this, false); + _PubSub_listeners.set(this, { + [PubSubType.CHANNELS]: new Map(), + [PubSubType.PATTERNS]: new Map(), + [PubSubType.SHARDED]: new Map() + }); + } + static isStatusReply(reply) { + return (COMMANDS[PubSubType.CHANNELS].subscribe.equals(reply[0]) || + COMMANDS[PubSubType.CHANNELS].unsubscribe.equals(reply[0]) || + COMMANDS[PubSubType.PATTERNS].subscribe.equals(reply[0]) || + COMMANDS[PubSubType.PATTERNS].unsubscribe.equals(reply[0]) || + COMMANDS[PubSubType.SHARDED].subscribe.equals(reply[0])); + } + static isShardedUnsubscribe(reply) { + return COMMANDS[PubSubType.SHARDED].unsubscribe.equals(reply[0]); + } + get isActive() { + return __classPrivateFieldGet(this, _PubSub_isActive, "f"); + } + subscribe(type, channels, listener, returnBuffers) { + var _b; + const args = [COMMANDS[type].subscribe], channelsArray = __classPrivateFieldGet(PubSub, _a, "m", _PubSub_channelsArray).call(PubSub, channels); + for (const channel of channelsArray) { + let channelListeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel); + if (!channelListeners || channelListeners.unsubscribing) { + args.push(channel); + } + } + if (args.length === 1) { + // all channels are already subscribed, add listeners without issuing a command + for (const channel of channelsArray) { + __classPrivateFieldGet(PubSub, _a, "m", _PubSub_listenersSet).call(PubSub, __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel), returnBuffers).add(listener); + } + return; + } + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + return { + args, + channelsCounter: args.length - 1, + resolve: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + for (const channel of channelsArray) { + let listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel); + if (!listeners) { + listeners = { + unsubscribing: false, + buffers: new Set(), + strings: new Set() + }; + __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].set(channel, listeners); + } + __classPrivateFieldGet(PubSub, _a, "m", _PubSub_listenersSet).call(PubSub, listeners, returnBuffers).add(listener); + } + }, + reject: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + } + }; + } + extendChannelListeners(type, channel, listeners) { + var _b; + if (!__classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_extendChannelListeners).call(this, type, channel, listeners)) + return; + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + return { + args: [ + COMMANDS[type].subscribe, + channel + ], + channelsCounter: 1, + resolve: () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b = _c--, _c), "f"), _b; }, + reject: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + } + }; + } + extendTypeListeners(type, listeners) { + var _b; + const args = [COMMANDS[type].subscribe]; + for (const [channel, channelListeners] of listeners) { + if (__classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_extendChannelListeners).call(this, type, channel, channelListeners)) { + args.push(channel); + } + } + if (args.length === 1) + return; + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + return { + args, + channelsCounter: args.length - 1, + resolve: () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b = _c--, _c), "f"), _b; }, + reject: () => { + var _b; + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b--, _b), "f"); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + } + }; + } + unsubscribe(type, channels, listener, returnBuffers) { + const listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type]; + if (!channels) { + return __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_unsubscribeCommand).call(this, [COMMANDS[type].unsubscribe], + // cannot use `this.#subscribed` because there might be some `SUBSCRIBE` commands in the queue + // cannot use `this.#subscribed + this.#subscribing` because some `SUBSCRIBE` commands might fail + NaN, () => listeners.clear()); + } + const channelsArray = __classPrivateFieldGet(PubSub, _a, "m", _PubSub_channelsArray).call(PubSub, channels); + if (!listener) { + return __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_unsubscribeCommand).call(this, [COMMANDS[type].unsubscribe, ...channelsArray], channelsArray.length, () => { + for (const channel of channelsArray) { + listeners.delete(channel); + } + }); + } + const args = [COMMANDS[type].unsubscribe]; + for (const channel of channelsArray) { + const sets = listeners.get(channel); + if (sets) { + let current, other; + if (returnBuffers) { + current = sets.buffers; + other = sets.strings; + } + else { + current = sets.strings; + other = sets.buffers; + } + const currentSize = current.has(listener) ? current.size - 1 : current.size; + if (currentSize !== 0 || other.size !== 0) + continue; + sets.unsubscribing = true; + } + args.push(channel); + } + if (args.length === 1) { + // all channels has other listeners, + // delete the listeners without issuing a command + for (const channel of channelsArray) { + __classPrivateFieldGet(PubSub, _a, "m", _PubSub_listenersSet).call(PubSub, listeners.get(channel), returnBuffers).delete(listener); + } + return; + } + return __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_unsubscribeCommand).call(this, args, args.length - 1, () => { + for (const channel of channelsArray) { + const sets = listeners.get(channel); + if (!sets) + continue; + (returnBuffers ? sets.buffers : sets.strings).delete(listener); + if (sets.buffers.size === 0 && sets.strings.size === 0) { + listeners.delete(channel); + } + } + }); + } + reset() { + __classPrivateFieldSet(this, _PubSub_isActive, false, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, 0, "f"); + } + resubscribe() { + var _b; + const commands = []; + for (const [type, listeners] of Object.entries(__classPrivateFieldGet(this, _PubSub_listeners, "f"))) { + if (!listeners.size) + continue; + __classPrivateFieldSet(this, _PubSub_isActive, true, "f"); + __classPrivateFieldSet(this, _PubSub_subscribing, (_b = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b++, _b), "f"); + const callback = () => { var _b, _c; return __classPrivateFieldSet(this, _PubSub_subscribing, (_c = __classPrivateFieldGet(this, _PubSub_subscribing, "f"), _b = _c--, _c), "f"), _b; }; + commands.push({ + args: [ + COMMANDS[type].subscribe, + ...listeners.keys() + ], + channelsCounter: listeners.size, + resolve: callback, + reject: callback + }); + } + return commands; + } + handleMessageReply(reply) { + if (COMMANDS[PubSubType.CHANNELS].message.equals(reply[0])) { + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_emitPubSubMessage).call(this, PubSubType.CHANNELS, reply[2], reply[1]); + return true; + } + else if (COMMANDS[PubSubType.PATTERNS].message.equals(reply[0])) { + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_emitPubSubMessage).call(this, PubSubType.PATTERNS, reply[3], reply[2], reply[1]); + return true; + } + else if (COMMANDS[PubSubType.SHARDED].message.equals(reply[0])) { + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_emitPubSubMessage).call(this, PubSubType.SHARDED, reply[2], reply[1]); + return true; + } + return false; + } + removeShardedListeners(channel) { + const listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.SHARDED].get(channel); + __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.SHARDED].delete(channel); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + return listeners; + } + getTypeListeners(type) { + return __classPrivateFieldGet(this, _PubSub_listeners, "f")[type]; + } +} +exports.PubSub = PubSub; +_a = PubSub, _PubSub_subscribing = new WeakMap(), _PubSub_isActive = new WeakMap(), _PubSub_listeners = new WeakMap(), _PubSub_instances = new WeakSet(), _PubSub_channelsArray = function _PubSub_channelsArray(channels) { + return (Array.isArray(channels) ? channels : [channels]); +}, _PubSub_listenersSet = function _PubSub_listenersSet(listeners, returnBuffers) { + return (returnBuffers ? listeners.buffers : listeners.strings); +}, _PubSub_extendChannelListeners = function _PubSub_extendChannelListeners(type, channel, listeners) { + const existingListeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(channel); + if (!existingListeners) { + __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].set(channel, listeners); + return true; + } + for (const listener of listeners.buffers) { + existingListeners.buffers.add(listener); + } + for (const listener of listeners.strings) { + existingListeners.strings.add(listener); + } + return false; +}, _PubSub_unsubscribeCommand = function _PubSub_unsubscribeCommand(args, channelsCounter, removeListeners) { + return { + args, + channelsCounter, + resolve: () => { + removeListeners(); + __classPrivateFieldGet(this, _PubSub_instances, "m", _PubSub_updateIsActive).call(this); + }, + reject: undefined // use the same structure as `subscribe` + }; +}, _PubSub_updateIsActive = function _PubSub_updateIsActive() { + __classPrivateFieldSet(this, _PubSub_isActive, (__classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.CHANNELS].size !== 0 || + __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.PATTERNS].size !== 0 || + __classPrivateFieldGet(this, _PubSub_listeners, "f")[PubSubType.CHANNELS].size !== 0 || + __classPrivateFieldGet(this, _PubSub_subscribing, "f") !== 0), "f"); +}, _PubSub_emitPubSubMessage = function _PubSub_emitPubSubMessage(type, message, channel, pattern) { + const keyString = (pattern ?? channel).toString(), listeners = __classPrivateFieldGet(this, _PubSub_listeners, "f")[type].get(keyString); + if (!listeners) + return; + for (const listener of listeners.buffers) { + listener(message, channel); + } + if (!listeners.strings.size) + return; + const channelString = pattern ? channel.toString() : keyString, messageString = channelString === '__redis__:invalidate' ? + // https://github.com/redis/redis/pull/7469 + // https://github.com/redis/redis/issues/7463 + (message === null ? null : message.map(x => x.toString())) : + message.toString(); + for (const listener of listeners.strings) { + listener(messageString, channelString); + } +}; + + +/***/ }), + +/***/ 49457: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +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, 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 _RedisSocket_instances, _a, _RedisSocket_initiateOptions, _RedisSocket_isTlsSocket, _RedisSocket_initiator, _RedisSocket_options, _RedisSocket_socket, _RedisSocket_isOpen, _RedisSocket_isReady, _RedisSocket_writableNeedDrain, _RedisSocket_isSocketUnrefed, _RedisSocket_reconnectStrategy, _RedisSocket_shouldReconnect, _RedisSocket_connect, _RedisSocket_createSocket, _RedisSocket_createNetSocket, _RedisSocket_createTlsSocket, _RedisSocket_onSocketError, _RedisSocket_disconnect, _RedisSocket_isCorked; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const events_1 = __nccwpck_require__(82361); +const net = __nccwpck_require__(41808); +const tls = __nccwpck_require__(24404); +const errors_1 = __nccwpck_require__(92711); +const utils_1 = __nccwpck_require__(71103); +class RedisSocket extends events_1.EventEmitter { + get isOpen() { + return __classPrivateFieldGet(this, _RedisSocket_isOpen, "f"); + } + get isReady() { + return __classPrivateFieldGet(this, _RedisSocket_isReady, "f"); + } + get writableNeedDrain() { + return __classPrivateFieldGet(this, _RedisSocket_writableNeedDrain, "f"); + } + constructor(initiator, options) { + super(); + _RedisSocket_instances.add(this); + _RedisSocket_initiator.set(this, void 0); + _RedisSocket_options.set(this, void 0); + _RedisSocket_socket.set(this, void 0); + _RedisSocket_isOpen.set(this, false); + _RedisSocket_isReady.set(this, false); + // `writable.writableNeedDrain` was added in v15.2.0 and therefore can't be used + // https://nodejs.org/api/stream.html#stream_writable_writableneeddrain + _RedisSocket_writableNeedDrain.set(this, false); + _RedisSocket_isSocketUnrefed.set(this, false); + _RedisSocket_isCorked.set(this, false); + __classPrivateFieldSet(this, _RedisSocket_initiator, initiator, "f"); + __classPrivateFieldSet(this, _RedisSocket_options, __classPrivateFieldGet(RedisSocket, _a, "m", _RedisSocket_initiateOptions).call(RedisSocket, options), "f"); + } + async connect() { + if (__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) { + throw new Error('Socket already opened'); + } + __classPrivateFieldSet(this, _RedisSocket_isOpen, true, "f"); + return __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_connect).call(this); + } + writeCommand(args) { + if (!__classPrivateFieldGet(this, _RedisSocket_socket, "f")) { + throw new errors_1.ClientClosedError(); + } + for (const toWrite of args) { + __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, !__classPrivateFieldGet(this, _RedisSocket_socket, "f").write(toWrite), "f"); + } + } + disconnect() { + if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) { + throw new errors_1.ClientClosedError(); + } + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_disconnect).call(this); + } + async quit(fn) { + if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f")) { + throw new errors_1.ClientClosedError(); + } + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + const reply = await fn(); + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_disconnect).call(this); + return reply; + } + cork() { + if (!__classPrivateFieldGet(this, _RedisSocket_socket, "f") || __classPrivateFieldGet(this, _RedisSocket_isCorked, "f")) { + return; + } + __classPrivateFieldGet(this, _RedisSocket_socket, "f").cork(); + __classPrivateFieldSet(this, _RedisSocket_isCorked, true, "f"); + queueMicrotask(() => { + __classPrivateFieldGet(this, _RedisSocket_socket, "f")?.uncork(); + __classPrivateFieldSet(this, _RedisSocket_isCorked, false, "f"); + }); + } + ref() { + __classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, false, "f"); + __classPrivateFieldGet(this, _RedisSocket_socket, "f")?.ref(); + } + unref() { + __classPrivateFieldSet(this, _RedisSocket_isSocketUnrefed, true, "f"); + __classPrivateFieldGet(this, _RedisSocket_socket, "f")?.unref(); + } +} +exports["default"] = RedisSocket; +_a = RedisSocket, _RedisSocket_initiator = new WeakMap(), _RedisSocket_options = new WeakMap(), _RedisSocket_socket = new WeakMap(), _RedisSocket_isOpen = new WeakMap(), _RedisSocket_isReady = new WeakMap(), _RedisSocket_writableNeedDrain = new WeakMap(), _RedisSocket_isSocketUnrefed = new WeakMap(), _RedisSocket_isCorked = new WeakMap(), _RedisSocket_instances = new WeakSet(), _RedisSocket_initiateOptions = function _RedisSocket_initiateOptions(options) { + var _b, _c; + options ?? (options = {}); + if (!options.path) { + (_b = options).port ?? (_b.port = 6379); + (_c = options).host ?? (_c.host = 'localhost'); + } + options.connectTimeout ?? (options.connectTimeout = 5000); + options.keepAlive ?? (options.keepAlive = 5000); + options.noDelay ?? (options.noDelay = true); + return options; +}, _RedisSocket_isTlsSocket = function _RedisSocket_isTlsSocket(options) { + return options.tls === true; +}, _RedisSocket_reconnectStrategy = function _RedisSocket_reconnectStrategy(retries, cause) { + if (__classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy === false) { + return false; + } + else if (typeof __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy === 'number') { + return __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy; + } + else if (__classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy) { + try { + const retryIn = __classPrivateFieldGet(this, _RedisSocket_options, "f").reconnectStrategy(retries, cause); + if (retryIn !== false && !(retryIn instanceof Error) && typeof retryIn !== 'number') { + throw new TypeError(`Reconnect strategy should return \`false | Error | number\`, got ${retryIn} instead`); + } + return retryIn; + } + catch (err) { + this.emit('error', err); + } + } + return Math.min(retries * 50, 500); +}, _RedisSocket_shouldReconnect = function _RedisSocket_shouldReconnect(retries, cause) { + const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_reconnectStrategy).call(this, retries, cause); + if (retryIn === false) { + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + this.emit('error', cause); + return cause; + } + else if (retryIn instanceof Error) { + __classPrivateFieldSet(this, _RedisSocket_isOpen, false, "f"); + this.emit('error', cause); + return new errors_1.ReconnectStrategyError(retryIn, cause); + } + return retryIn; +}, _RedisSocket_connect = async function _RedisSocket_connect() { + let retries = 0; + do { + try { + __classPrivateFieldSet(this, _RedisSocket_socket, await __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createSocket).call(this), "f"); + __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, "f"); + this.emit('connect'); + try { + await __classPrivateFieldGet(this, _RedisSocket_initiator, "f").call(this); + } + catch (err) { + __classPrivateFieldGet(this, _RedisSocket_socket, "f").destroy(); + __classPrivateFieldSet(this, _RedisSocket_socket, undefined, "f"); + throw err; + } + __classPrivateFieldSet(this, _RedisSocket_isReady, true, "f"); + this.emit('ready'); + } + catch (err) { + const retryIn = __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_shouldReconnect).call(this, retries++, err); + if (typeof retryIn !== 'number') { + throw retryIn; + } + this.emit('error', err); + await (0, utils_1.promiseTimeout)(retryIn); + this.emit('reconnecting'); + } + } while (__classPrivateFieldGet(this, _RedisSocket_isOpen, "f") && !__classPrivateFieldGet(this, _RedisSocket_isReady, "f")); +}, _RedisSocket_createSocket = function _RedisSocket_createSocket() { + return new Promise((resolve, reject) => { + const { connectEvent, socket } = __classPrivateFieldGet(RedisSocket, _a, "m", _RedisSocket_isTlsSocket).call(RedisSocket, __classPrivateFieldGet(this, _RedisSocket_options, "f")) ? + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createTlsSocket).call(this) : + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_createNetSocket).call(this); + if (__classPrivateFieldGet(this, _RedisSocket_options, "f").connectTimeout) { + socket.setTimeout(__classPrivateFieldGet(this, _RedisSocket_options, "f").connectTimeout, () => socket.destroy(new errors_1.ConnectionTimeoutError())); + } + if (__classPrivateFieldGet(this, _RedisSocket_isSocketUnrefed, "f")) { + socket.unref(); + } + socket + .setNoDelay(__classPrivateFieldGet(this, _RedisSocket_options, "f").noDelay) + .once('error', reject) + .once(connectEvent, () => { + socket + .setTimeout(0) + // https://github.com/nodejs/node/issues/31663 + .setKeepAlive(__classPrivateFieldGet(this, _RedisSocket_options, "f").keepAlive !== false, __classPrivateFieldGet(this, _RedisSocket_options, "f").keepAlive || 0) + .off('error', reject) + .once('error', (err) => __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_onSocketError).call(this, err)) + .once('close', hadError => { + if (!hadError && __classPrivateFieldGet(this, _RedisSocket_isOpen, "f") && __classPrivateFieldGet(this, _RedisSocket_socket, "f") === socket) { + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_onSocketError).call(this, new errors_1.SocketClosedUnexpectedlyError()); + } + }) + .on('drain', () => { + __classPrivateFieldSet(this, _RedisSocket_writableNeedDrain, false, "f"); + this.emit('drain'); + }) + .on('data', data => this.emit('data', data)); + resolve(socket); + }); + }); +}, _RedisSocket_createNetSocket = function _RedisSocket_createNetSocket() { + return { + connectEvent: 'connect', + socket: net.connect(__classPrivateFieldGet(this, _RedisSocket_options, "f")) // TODO + }; +}, _RedisSocket_createTlsSocket = function _RedisSocket_createTlsSocket() { + return { + connectEvent: 'secureConnect', + socket: tls.connect(__classPrivateFieldGet(this, _RedisSocket_options, "f")) // TODO + }; +}, _RedisSocket_onSocketError = function _RedisSocket_onSocketError(err) { + __classPrivateFieldSet(this, _RedisSocket_isReady, false, "f"); + this.emit('error', err); + if (!__classPrivateFieldGet(this, _RedisSocket_isOpen, "f") || typeof __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_shouldReconnect).call(this, 0, err) !== 'number') + return; + this.emit('reconnecting'); + __classPrivateFieldGet(this, _RedisSocket_instances, "m", _RedisSocket_connect).call(this).catch(() => { + // the error was already emitted, silently ignore it + }); +}, _RedisSocket_disconnect = function _RedisSocket_disconnect() { + __classPrivateFieldSet(this, _RedisSocket_isReady, false, "f"); + if (__classPrivateFieldGet(this, _RedisSocket_socket, "f")) { + __classPrivateFieldGet(this, _RedisSocket_socket, "f").destroy(); + __classPrivateFieldSet(this, _RedisSocket_socket, undefined, "f"); + } + this.emit('end'); +}; + + +/***/ }), + +/***/ 12829: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +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, 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 _RedisClusterSlots_instances, _a, _RedisClusterSlots_SLOTS, _RedisClusterSlots_options, _RedisClusterSlots_Client, _RedisClusterSlots_emit, _RedisClusterSlots_isOpen, _RedisClusterSlots_discoverWithRootNodes, _RedisClusterSlots_resetSlots, _RedisClusterSlots_discover, _RedisClusterSlots_getShards, _RedisClusterSlots_getNodeAddress, _RedisClusterSlots_clientOptionsDefaults, _RedisClusterSlots_initiateSlotNode, _RedisClusterSlots_createClient, _RedisClusterSlots_createNodeClient, _RedisClusterSlots_runningRediscoverPromise, _RedisClusterSlots_rediscover, _RedisClusterSlots_destroy, _RedisClusterSlots_execOnNodeClient, _RedisClusterSlots_iterateAllNodes, _RedisClusterSlots_randomNodeIterator, _RedisClusterSlots_slotNodesIterator, _RedisClusterSlots_initiatePubSubClient, _RedisClusterSlots_initiateShardedPubSubClient; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const client_1 = __nccwpck_require__(86927); +const errors_1 = __nccwpck_require__(92711); +const util_1 = __nccwpck_require__(73837); +const pub_sub_1 = __nccwpck_require__(2244); +// We need to use 'require', because it's not possible with Typescript to import +// function that are exported as 'module.exports = function`, without esModuleInterop +// set to true. +const calculateSlot = __nccwpck_require__(19413); +class RedisClusterSlots { + get isOpen() { + return __classPrivateFieldGet(this, _RedisClusterSlots_isOpen, "f"); + } + constructor(options, emit) { + _RedisClusterSlots_instances.add(this); + _RedisClusterSlots_options.set(this, void 0); + _RedisClusterSlots_Client.set(this, void 0); + _RedisClusterSlots_emit.set(this, void 0); + Object.defineProperty(this, "slots", { + enumerable: true, + configurable: true, + writable: true, + value: new Array(__classPrivateFieldGet(RedisClusterSlots, _a, "f", _RedisClusterSlots_SLOTS)) + }); + Object.defineProperty(this, "shards", { + enumerable: true, + configurable: true, + writable: true, + value: new Array() + }); + Object.defineProperty(this, "masters", { + enumerable: true, + configurable: true, + writable: true, + value: new Array() + }); + Object.defineProperty(this, "replicas", { + enumerable: true, + configurable: true, + writable: true, + value: new Array() + }); + Object.defineProperty(this, "nodeByAddress", { + enumerable: true, + configurable: true, + writable: true, + value: new Map() + }); + Object.defineProperty(this, "pubSubNode", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + _RedisClusterSlots_isOpen.set(this, false); + _RedisClusterSlots_runningRediscoverPromise.set(this, void 0); + _RedisClusterSlots_randomNodeIterator.set(this, void 0); + __classPrivateFieldSet(this, _RedisClusterSlots_options, options, "f"); + __classPrivateFieldSet(this, _RedisClusterSlots_Client, client_1.default.extend(options), "f"); + __classPrivateFieldSet(this, _RedisClusterSlots_emit, emit, "f"); + } + async connect() { + if (__classPrivateFieldGet(this, _RedisClusterSlots_isOpen, "f")) { + throw new Error('Cluster already open'); + } + __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, true, "f"); + try { + await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discoverWithRootNodes).call(this); + } + catch (err) { + __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, false, "f"); + throw err; + } + } + nodeClient(node) { + return node.client ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createNodeClient).call(this, node); + } + async rediscover(startWith) { + __classPrivateFieldSet(this, _RedisClusterSlots_runningRediscoverPromise, __classPrivateFieldGet(this, _RedisClusterSlots_runningRediscoverPromise, "f") ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_rediscover).call(this, startWith) + .finally(() => __classPrivateFieldSet(this, _RedisClusterSlots_runningRediscoverPromise, undefined, "f")), "f"); + return __classPrivateFieldGet(this, _RedisClusterSlots_runningRediscoverPromise, "f"); + } + quit() { + return __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_destroy).call(this, client => client.quit()); + } + disconnect() { + return __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_destroy).call(this, client => client.disconnect()); + } + getClient(firstKey, isReadonly) { + if (!firstKey) { + return this.nodeClient(this.getRandomNode()); + } + const slotNumber = calculateSlot(firstKey); + if (!isReadonly) { + return this.nodeClient(this.slots[slotNumber].master); + } + return this.nodeClient(this.getSlotRandomNode(slotNumber)); + } + getRandomNode() { + __classPrivateFieldSet(this, _RedisClusterSlots_randomNodeIterator, __classPrivateFieldGet(this, _RedisClusterSlots_randomNodeIterator, "f") ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_iterateAllNodes).call(this), "f"); + return __classPrivateFieldGet(this, _RedisClusterSlots_randomNodeIterator, "f").next().value; + } + getSlotRandomNode(slotNumber) { + const slot = this.slots[slotNumber]; + if (!slot.replicas?.length) { + return slot.master; + } + slot.nodesIterator ?? (slot.nodesIterator = __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_slotNodesIterator).call(this, slot)); + return slot.nodesIterator.next().value; + } + getMasterByAddress(address) { + const master = this.nodeByAddress.get(address); + if (!master) + return; + return this.nodeClient(master); + } + getPubSubClient() { + return this.pubSubNode ? + this.pubSubNode.client : + __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiatePubSubClient).call(this); + } + async executeUnsubscribeCommand(unsubscribe) { + const client = await this.getPubSubClient(); + await unsubscribe(client); + if (!client.isPubSubActive) { + await client.disconnect(); + this.pubSubNode = undefined; + } + } + getShardedPubSubClient(channel) { + const { master } = this.slots[calculateSlot(channel)]; + return master.pubSubClient ?? __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiateShardedPubSubClient).call(this, master); + } + async executeShardedUnsubscribeCommand(channel, unsubscribe) { + const { master } = this.slots[calculateSlot(channel)]; + if (!master.pubSubClient) + return Promise.resolve(); + const client = await master.pubSubClient; + await unsubscribe(client); + if (!client.isPubSubActive) { + await client.disconnect(); + master.pubSubClient = undefined; + } + } +} +exports["default"] = RedisClusterSlots; +_a = RedisClusterSlots, _RedisClusterSlots_options = new WeakMap(), _RedisClusterSlots_Client = new WeakMap(), _RedisClusterSlots_emit = new WeakMap(), _RedisClusterSlots_isOpen = new WeakMap(), _RedisClusterSlots_runningRediscoverPromise = new WeakMap(), _RedisClusterSlots_randomNodeIterator = new WeakMap(), _RedisClusterSlots_instances = new WeakSet(), _RedisClusterSlots_discoverWithRootNodes = async function _RedisClusterSlots_discoverWithRootNodes() { + let start = Math.floor(Math.random() * __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes.length); + for (let i = start; i < __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes.length; i++) { + if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discover).call(this, __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes[i])) + return; + } + for (let i = 0; i < start; i++) { + if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discover).call(this, __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").rootNodes[i])) + return; + } + throw new errors_1.RootNodesUnavailableError(); +}, _RedisClusterSlots_resetSlots = function _RedisClusterSlots_resetSlots() { + this.slots = new Array(__classPrivateFieldGet(RedisClusterSlots, _a, "f", _RedisClusterSlots_SLOTS)); + this.shards = []; + this.masters = []; + this.replicas = []; + __classPrivateFieldSet(this, _RedisClusterSlots_randomNodeIterator, undefined, "f"); +}, _RedisClusterSlots_discover = async function _RedisClusterSlots_discover(rootNode) { + __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_resetSlots).call(this); + const addressesInUse = new Set(); + try { + const shards = await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_getShards).call(this, rootNode), promises = [], eagerConnect = __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").minimizeConnections !== true; + for (const { from, to, master, replicas } of shards) { + const shard = { + master: __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiateSlotNode).call(this, master, false, eagerConnect, addressesInUse, promises) + }; + if (__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").useReplicas) { + shard.replicas = replicas.map(replica => __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiateSlotNode).call(this, replica, true, eagerConnect, addressesInUse, promises)); + } + this.shards.push(shard); + for (let i = from; i <= to; i++) { + this.slots[i] = shard; + } + } + if (this.pubSubNode && !addressesInUse.has(this.pubSubNode.address)) { + if (util_1.types.isPromise(this.pubSubNode.client)) { + promises.push(this.pubSubNode.client.then(client => client.disconnect())); + this.pubSubNode = undefined; + } + else { + promises.push(this.pubSubNode.client.disconnect()); + const channelsListeners = this.pubSubNode.client.getPubSubListeners(pub_sub_1.PubSubType.CHANNELS), patternsListeners = this.pubSubNode.client.getPubSubListeners(pub_sub_1.PubSubType.PATTERNS); + if (channelsListeners.size || patternsListeners.size) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_initiatePubSubClient).call(this, { + [pub_sub_1.PubSubType.CHANNELS]: channelsListeners, + [pub_sub_1.PubSubType.PATTERNS]: patternsListeners + })); + } + } + } + for (const [address, node] of this.nodeByAddress.entries()) { + if (addressesInUse.has(address)) + continue; + if (node.client) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, node.client, client => client.disconnect())); + } + const { pubSubClient } = node; + if (pubSubClient) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, pubSubClient, client => client.disconnect())); + } + this.nodeByAddress.delete(address); + } + await Promise.all(promises); + return true; + } + catch (err) { + __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'error', err); + return false; + } +}, _RedisClusterSlots_getShards = async function _RedisClusterSlots_getShards(rootNode) { + const client = new (__classPrivateFieldGet(this, _RedisClusterSlots_Client, "f"))(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_clientOptionsDefaults).call(this, rootNode, true)); + client.on('error', err => __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'error', err)); + await client.connect(); + try { + // using `CLUSTER SLOTS` and not `CLUSTER SHARDS` to support older versions + return await client.clusterSlots(); + } + finally { + await client.disconnect(); + } +}, _RedisClusterSlots_getNodeAddress = function _RedisClusterSlots_getNodeAddress(address) { + switch (typeof __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").nodeAddressMap) { + case 'object': + return __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").nodeAddressMap[address]; + case 'function': + return __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").nodeAddressMap(address); + } +}, _RedisClusterSlots_clientOptionsDefaults = function _RedisClusterSlots_clientOptionsDefaults(options, disableReconnect) { + let result; + if (__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults) { + let socket; + if (__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults.socket) { + socket = options?.socket ? { + ...__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults.socket, + ...options.socket + } : __classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults.socket; + } + else { + socket = options?.socket; + } + result = { + ...__classPrivateFieldGet(this, _RedisClusterSlots_options, "f").defaults, + ...options, + socket + }; + } + else { + result = options; + } + if (disableReconnect) { + result ?? (result = {}); + result.socket ?? (result.socket = {}); + result.socket.reconnectStrategy = false; + } + return result; +}, _RedisClusterSlots_initiateSlotNode = function _RedisClusterSlots_initiateSlotNode({ id, ip, port }, readonly, eagerConnent, addressesInUse, promises) { + const address = `${ip}:${port}`; + addressesInUse.add(address); + let node = this.nodeByAddress.get(address); + if (!node) { + node = { + id, + host: ip, + port, + address, + readonly, + client: undefined + }; + if (eagerConnent) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createNodeClient).call(this, node)); + } + this.nodeByAddress.set(address, node); + } + (readonly ? this.replicas : this.masters).push(node); + return node; +}, _RedisClusterSlots_createClient = async function _RedisClusterSlots_createClient(node, readonly = node.readonly) { + const client = new (__classPrivateFieldGet(this, _RedisClusterSlots_Client, "f"))(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_clientOptionsDefaults).call(this, { + socket: __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_getNodeAddress).call(this, node.address) ?? { + host: node.host, + port: node.port + }, + readonly + })); + client.on('error', err => __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'error', err)); + await client.connect(); + return client; +}, _RedisClusterSlots_createNodeClient = function _RedisClusterSlots_createNodeClient(node) { + const promise = __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createClient).call(this, node) + .then(client => { + node.client = client; + return client; + }) + .catch(err => { + node.client = undefined; + throw err; + }); + node.client = promise; + return promise; +}, _RedisClusterSlots_rediscover = async function _RedisClusterSlots_rediscover(startWith) { + if (await __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discover).call(this, startWith.options)) + return; + return __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_discoverWithRootNodes).call(this); +}, _RedisClusterSlots_destroy = async function _RedisClusterSlots_destroy(fn) { + __classPrivateFieldSet(this, _RedisClusterSlots_isOpen, false, "f"); + const promises = []; + for (const { master, replicas } of this.shards) { + if (master.client) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, master.client, fn)); + } + if (master.pubSubClient) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, master.pubSubClient, fn)); + } + if (replicas) { + for (const { client } of replicas) { + if (client) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, client, fn)); + } + } + } + } + if (this.pubSubNode) { + promises.push(__classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_execOnNodeClient).call(this, this.pubSubNode.client, fn)); + this.pubSubNode = undefined; + } + __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_resetSlots).call(this); + this.nodeByAddress.clear(); + await Promise.allSettled(promises); +}, _RedisClusterSlots_execOnNodeClient = function _RedisClusterSlots_execOnNodeClient(client, fn) { + return util_1.types.isPromise(client) ? + client.then(fn) : + fn(client); +}, _RedisClusterSlots_iterateAllNodes = function* _RedisClusterSlots_iterateAllNodes() { + let i = Math.floor(Math.random() * (this.masters.length + this.replicas.length)); + if (i < this.masters.length) { + do { + yield this.masters[i]; + } while (++i < this.masters.length); + for (const replica of this.replicas) { + yield replica; + } + } + else { + i -= this.masters.length; + do { + yield this.replicas[i]; + } while (++i < this.replicas.length); + } + while (true) { + for (const master of this.masters) { + yield master; + } + for (const replica of this.replicas) { + yield replica; + } + } +}, _RedisClusterSlots_slotNodesIterator = function* _RedisClusterSlots_slotNodesIterator(slot) { + let i = Math.floor(Math.random() * (1 + slot.replicas.length)); + if (i < slot.replicas.length) { + do { + yield slot.replicas[i]; + } while (++i < slot.replicas.length); + } + while (true) { + yield slot.master; + for (const replica of slot.replicas) { + yield replica; + } + } +}, _RedisClusterSlots_initiatePubSubClient = async function _RedisClusterSlots_initiatePubSubClient(toResubscribe) { + const index = Math.floor(Math.random() * (this.masters.length + this.replicas.length)), node = index < this.masters.length ? + this.masters[index] : + this.replicas[index - this.masters.length]; + this.pubSubNode = { + address: node.address, + client: __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createClient).call(this, node, true) + .then(async (client) => { + if (toResubscribe) { + await Promise.all([ + client.extendPubSubListeners(pub_sub_1.PubSubType.CHANNELS, toResubscribe[pub_sub_1.PubSubType.CHANNELS]), + client.extendPubSubListeners(pub_sub_1.PubSubType.PATTERNS, toResubscribe[pub_sub_1.PubSubType.PATTERNS]) + ]); + } + this.pubSubNode.client = client; + return client; + }) + .catch(err => { + this.pubSubNode = undefined; + throw err; + }) + }; + return this.pubSubNode.client; +}, _RedisClusterSlots_initiateShardedPubSubClient = function _RedisClusterSlots_initiateShardedPubSubClient(master) { + const promise = __classPrivateFieldGet(this, _RedisClusterSlots_instances, "m", _RedisClusterSlots_createClient).call(this, master, true) + .then(client => { + client.on('server-sunsubscribe', async (channel, listeners) => { + try { + await this.rediscover(client); + const redirectTo = await this.getShardedPubSubClient(channel); + redirectTo.extendPubSubChannelListeners(pub_sub_1.PubSubType.SHARDED, channel, listeners); + } + catch (err) { + __classPrivateFieldGet(this, _RedisClusterSlots_emit, "f").call(this, 'sharded-shannel-moved-error', err, channel, listeners); + } + }); + master.pubSubClient = client; + return client; + }) + .catch(err => { + master.pubSubClient = undefined; + throw err; + }); + master.pubSubClient = promise; + return promise; +}; +_RedisClusterSlots_SLOTS = { value: 16384 }; + + +/***/ }), + +/***/ 34254: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const APPEND = __nccwpck_require__(31514); +const BITCOUNT = __nccwpck_require__(70756); +const BITFIELD_RO = __nccwpck_require__(63109); +const BITFIELD = __nccwpck_require__(1291); +const BITOP = __nccwpck_require__(86195); +const BITPOS = __nccwpck_require__(15870); +const BLMOVE = __nccwpck_require__(24084); +const BLMPOP = __nccwpck_require__(61961); +const BLPOP = __nccwpck_require__(54476); +const BRPOP = __nccwpck_require__(31939); +const BRPOPLPUSH = __nccwpck_require__(63783); +const BZMPOP = __nccwpck_require__(62049); +const BZPOPMAX = __nccwpck_require__(32107); +const BZPOPMIN = __nccwpck_require__(70946); +const COPY = __nccwpck_require__(91790); +const DECR = __nccwpck_require__(90336); +const DECRBY = __nccwpck_require__(90030); +const DEL = __nccwpck_require__(10715); +const DUMP = __nccwpck_require__(67088); +const EVAL_RO = __nccwpck_require__(92078); +const EVAL = __nccwpck_require__(47450); +const EVALSHA_RO = __nccwpck_require__(93480); +const EVALSHA = __nccwpck_require__(66863); +const EXISTS = __nccwpck_require__(25615); +const EXPIRE = __nccwpck_require__(70219); +const EXPIREAT = __nccwpck_require__(18295); +const EXPIRETIME = __nccwpck_require__(966); +const FCALL_RO = __nccwpck_require__(8820); +const FCALL = __nccwpck_require__(64510); +const GEOADD = __nccwpck_require__(25522); +const GEODIST = __nccwpck_require__(12294); +const GEOHASH = __nccwpck_require__(63902); +const GEOPOS = __nccwpck_require__(19864); +const GEORADIUS_RO_WITH = __nccwpck_require__(62771); +const GEORADIUS_RO = __nccwpck_require__(85891); +const GEORADIUS_WITH = __nccwpck_require__(12070); +const GEORADIUS = __nccwpck_require__(73893); +const GEORADIUSBYMEMBER_RO_WITH = __nccwpck_require__(99386); +const GEORADIUSBYMEMBER_RO = __nccwpck_require__(47318); +const GEORADIUSBYMEMBER_WITH = __nccwpck_require__(57814); +const GEORADIUSBYMEMBER = __nccwpck_require__(13522); +const GEORADIUSBYMEMBERSTORE = __nccwpck_require__(77491); +const GEORADIUSSTORE = __nccwpck_require__(99549); +const GEOSEARCH_WITH = __nccwpck_require__(27764); +const GEOSEARCH = __nccwpck_require__(47568); +const GEOSEARCHSTORE = __nccwpck_require__(37377); +const GET = __nccwpck_require__(15574); +const GETBIT = __nccwpck_require__(58572); +const GETDEL = __nccwpck_require__(73962); +const GETEX = __nccwpck_require__(74000); +const GETRANGE = __nccwpck_require__(15955); +const GETSET = __nccwpck_require__(76234); +const HDEL = __nccwpck_require__(74763); +const HEXISTS = __nccwpck_require__(94622); +const HGET = __nccwpck_require__(30011); +const HGETALL = __nccwpck_require__(46560); +const HINCRBY = __nccwpck_require__(71194); +const HINCRBYFLOAT = __nccwpck_require__(72187); +const HKEYS = __nccwpck_require__(71367); +const HLEN = __nccwpck_require__(98332); +const HMGET = __nccwpck_require__(11818); +const HRANDFIELD_COUNT_WITHVALUES = __nccwpck_require__(243); +const HRANDFIELD_COUNT = __nccwpck_require__(71192); +const HRANDFIELD = __nccwpck_require__(12374); +const HSCAN = __nccwpck_require__(32882); +const HSET = __nccwpck_require__(32429); +const HSETNX = __nccwpck_require__(48535); +const HSTRLEN = __nccwpck_require__(33762); +const HVALS = __nccwpck_require__(15359); +const INCR = __nccwpck_require__(50097); +const INCRBY = __nccwpck_require__(13359); +const INCRBYFLOAT = __nccwpck_require__(28225); +const LCS_IDX_WITHMATCHLEN = __nccwpck_require__(47011); +const LCS_IDX = __nccwpck_require__(15375); +const LCS_LEN = __nccwpck_require__(49151); +const LCS = __nccwpck_require__(59458); +const LINDEX = __nccwpck_require__(84313); +const LINSERT = __nccwpck_require__(46439); +const LLEN = __nccwpck_require__(89128); +const LMOVE = __nccwpck_require__(39832); +const LMPOP = __nccwpck_require__(91222); +const LPOP_COUNT = __nccwpck_require__(70010); +const LPOP = __nccwpck_require__(36266); +const LPOS_COUNT = __nccwpck_require__(60578); +const LPOS = __nccwpck_require__(52069); +const LPUSH = __nccwpck_require__(65040); +const LPUSHX = __nccwpck_require__(62450); +const LRANGE = __nccwpck_require__(83635); +const LREM = __nccwpck_require__(40636); +const LSET = __nccwpck_require__(54998); +const LTRIM = __nccwpck_require__(97130); +const MGET = __nccwpck_require__(63894); +const MIGRATE = __nccwpck_require__(11757); +const MSET = __nccwpck_require__(30840); +const MSETNX = __nccwpck_require__(95583); +const OBJECT_ENCODING = __nccwpck_require__(9908); +const OBJECT_FREQ = __nccwpck_require__(85673); +const OBJECT_IDLETIME = __nccwpck_require__(49996); +const OBJECT_REFCOUNT = __nccwpck_require__(56707); +const PERSIST = __nccwpck_require__(6173); +const PEXPIRE = __nccwpck_require__(47868); +const PEXPIREAT = __nccwpck_require__(97050); +const PEXPIRETIME = __nccwpck_require__(5881); +const PFADD = __nccwpck_require__(51915); +const PFCOUNT = __nccwpck_require__(22695); +const PFMERGE = __nccwpck_require__(36387); +const PSETEX = __nccwpck_require__(81414); +const PTTL = __nccwpck_require__(1378); +const PUBLISH = __nccwpck_require__(5857); +const RENAME = __nccwpck_require__(58707); +const RENAMENX = __nccwpck_require__(25262); +const RPOP_COUNT = __nccwpck_require__(51089); +const RPOP = __nccwpck_require__(52179); +const RPOPLPUSH = __nccwpck_require__(49777); +const RPUSH = __nccwpck_require__(7579); +const RPUSHX = __nccwpck_require__(25779); +const SADD = __nccwpck_require__(94939); +const SCARD = __nccwpck_require__(90988); +const SDIFF = __nccwpck_require__(63288); +const SDIFFSTORE = __nccwpck_require__(40278); +const SET = __nccwpck_require__(32353); +const SETBIT = __nccwpck_require__(35385); +const SETEX = __nccwpck_require__(52761); +const SETNX = __nccwpck_require__(66131); +const SETRANGE = __nccwpck_require__(13418); +const SINTER = __nccwpck_require__(47099); +const SINTERCARD = __nccwpck_require__(60029); +const SINTERSTORE = __nccwpck_require__(60543); +const SISMEMBER = __nccwpck_require__(71855); +const SMEMBERS = __nccwpck_require__(32299); +const SMISMEMBER = __nccwpck_require__(41609); +const SMOVE = __nccwpck_require__(40807); +const SORT_RO = __nccwpck_require__(90795); +const SORT_STORE = __nccwpck_require__(71421); +const SORT = __nccwpck_require__(3451); +const SPOP = __nccwpck_require__(74); +const SPUBLISH = __nccwpck_require__(76985); +const SRANDMEMBER_COUNT = __nccwpck_require__(85672); +const SRANDMEMBER = __nccwpck_require__(87650); +const SREM = __nccwpck_require__(10981); +const SSCAN = __nccwpck_require__(75448); +const STRLEN = __nccwpck_require__(17770); +const SUNION = __nccwpck_require__(54482); +const SUNIONSTORE = __nccwpck_require__(2769); +const TOUCH = __nccwpck_require__(10896); +const TTL = __nccwpck_require__(33037); +const TYPE = __nccwpck_require__(31471); +const UNLINK = __nccwpck_require__(17099); +const WATCH = __nccwpck_require__(19601); +const XACK = __nccwpck_require__(20927); +const XADD = __nccwpck_require__(88023); +const XAUTOCLAIM_JUSTID = __nccwpck_require__(79094); +const XAUTOCLAIM = __nccwpck_require__(90886); +const XCLAIM_JUSTID = __nccwpck_require__(26149); +const XCLAIM = __nccwpck_require__(47144); +const XDEL = __nccwpck_require__(84371); +const XGROUP_CREATE = __nccwpck_require__(18484); +const XGROUP_CREATECONSUMER = __nccwpck_require__(50061); +const XGROUP_DELCONSUMER = __nccwpck_require__(56573); +const XGROUP_DESTROY = __nccwpck_require__(542); +const XGROUP_SETID = __nccwpck_require__(83733); +const XINFO_CONSUMERS = __nccwpck_require__(80250); +const XINFO_GROUPS = __nccwpck_require__(40504); +const XINFO_STREAM = __nccwpck_require__(26528); +const XLEN = __nccwpck_require__(21090); +const XPENDING_RANGE = __nccwpck_require__(40942); +const XPENDING = __nccwpck_require__(73477); +const XRANGE = __nccwpck_require__(93436); +const XREAD = __nccwpck_require__(38189); +const XREADGROUP = __nccwpck_require__(17478); +const XREVRANGE = __nccwpck_require__(52660); +const XSETID = __nccwpck_require__(59785); +const XTRIM = __nccwpck_require__(78666); +const ZADD = __nccwpck_require__(84647); +const ZCARD = __nccwpck_require__(84343); +const ZCOUNT = __nccwpck_require__(93617); +const ZDIFF_WITHSCORES = __nccwpck_require__(26916); +const ZDIFF = __nccwpck_require__(24394); +const ZDIFFSTORE = __nccwpck_require__(37980); +const ZINCRBY = __nccwpck_require__(38999); +const ZINTER_WITHSCORES = __nccwpck_require__(99290); +const ZINTER = __nccwpck_require__(36673); +const ZINTERCARD = __nccwpck_require__(77437); +const ZINTERSTORE = __nccwpck_require__(40105); +const ZLEXCOUNT = __nccwpck_require__(29899); +const ZMPOP = __nccwpck_require__(90536); +const ZMSCORE = __nccwpck_require__(25296); +const ZPOPMAX_COUNT = __nccwpck_require__(49264); +const ZPOPMAX = __nccwpck_require__(7170); +const ZPOPMIN_COUNT = __nccwpck_require__(54732); +const ZPOPMIN = __nccwpck_require__(38000); +const ZRANDMEMBER_COUNT_WITHSCORES = __nccwpck_require__(49250); +const ZRANDMEMBER_COUNT = __nccwpck_require__(23237); +const ZRANDMEMBER = __nccwpck_require__(32875); +const ZRANGE_WITHSCORES = __nccwpck_require__(65); +const ZRANGE = __nccwpck_require__(13140); +const ZRANGEBYLEX = __nccwpck_require__(35424); +const ZRANGEBYSCORE_WITHSCORES = __nccwpck_require__(55748); +const ZRANGEBYSCORE = __nccwpck_require__(35342); +const ZRANGESTORE = __nccwpck_require__(70118); +const ZRANK = __nccwpck_require__(99980); +const ZREM = __nccwpck_require__(35175); +const ZREMRANGEBYLEX = __nccwpck_require__(69981); +const ZREMRANGEBYRANK = __nccwpck_require__(44069); +const ZREMRANGEBYSCORE = __nccwpck_require__(94856); +const ZREVRANK = __nccwpck_require__(23398); +const ZSCAN = __nccwpck_require__(21080); +const ZSCORE = __nccwpck_require__(83410); +const ZUNION_WITHSCORES = __nccwpck_require__(98001); +const ZUNION = __nccwpck_require__(2103); +const ZUNIONSTORE = __nccwpck_require__(55081); +exports["default"] = { + APPEND, + append: APPEND, + BITCOUNT, + bitCount: BITCOUNT, + BITFIELD_RO, + bitFieldRo: BITFIELD_RO, + BITFIELD, + bitField: BITFIELD, + BITOP, + bitOp: BITOP, + BITPOS, + bitPos: BITPOS, + BLMOVE, + blMove: BLMOVE, + BLMPOP, + blmPop: BLMPOP, + BLPOP, + blPop: BLPOP, + BRPOP, + brPop: BRPOP, + BRPOPLPUSH, + brPopLPush: BRPOPLPUSH, + BZMPOP, + bzmPop: BZMPOP, + BZPOPMAX, + bzPopMax: BZPOPMAX, + BZPOPMIN, + bzPopMin: BZPOPMIN, + COPY, + copy: COPY, + DECR, + decr: DECR, + DECRBY, + decrBy: DECRBY, + DEL, + del: DEL, + DUMP, + dump: DUMP, + EVAL_RO, + evalRo: EVAL_RO, + EVAL, + eval: EVAL, + EVALSHA, + evalSha: EVALSHA, + EVALSHA_RO, + evalShaRo: EVALSHA_RO, + EXISTS, + exists: EXISTS, + EXPIRE, + expire: EXPIRE, + EXPIREAT, + expireAt: EXPIREAT, + EXPIRETIME, + expireTime: EXPIRETIME, + FCALL_RO, + fCallRo: FCALL_RO, + FCALL, + fCall: FCALL, + GEOADD, + geoAdd: GEOADD, + GEODIST, + geoDist: GEODIST, + GEOHASH, + geoHash: GEOHASH, + GEOPOS, + geoPos: GEOPOS, + GEORADIUS_RO_WITH, + geoRadiusRoWith: GEORADIUS_RO_WITH, + GEORADIUS_RO, + geoRadiusRo: GEORADIUS_RO, + GEORADIUS_WITH, + geoRadiusWith: GEORADIUS_WITH, + GEORADIUS, + geoRadius: GEORADIUS, + GEORADIUSBYMEMBER_RO_WITH, + geoRadiusByMemberRoWith: GEORADIUSBYMEMBER_RO_WITH, + GEORADIUSBYMEMBER_RO, + geoRadiusByMemberRo: GEORADIUSBYMEMBER_RO, + GEORADIUSBYMEMBER_WITH, + geoRadiusByMemberWith: GEORADIUSBYMEMBER_WITH, + GEORADIUSBYMEMBER, + geoRadiusByMember: GEORADIUSBYMEMBER, + GEORADIUSBYMEMBERSTORE, + geoRadiusByMemberStore: GEORADIUSBYMEMBERSTORE, + GEORADIUSSTORE, + geoRadiusStore: GEORADIUSSTORE, + GEOSEARCH_WITH, + geoSearchWith: GEOSEARCH_WITH, + GEOSEARCH, + geoSearch: GEOSEARCH, + GEOSEARCHSTORE, + geoSearchStore: GEOSEARCHSTORE, + GET, + get: GET, + GETBIT, + getBit: GETBIT, + GETDEL, + getDel: GETDEL, + GETEX, + getEx: GETEX, + GETRANGE, + getRange: GETRANGE, + GETSET, + getSet: GETSET, + HDEL, + hDel: HDEL, + HEXISTS, + hExists: HEXISTS, + HGET, + hGet: HGET, + HGETALL, + hGetAll: HGETALL, + HINCRBY, + hIncrBy: HINCRBY, + HINCRBYFLOAT, + hIncrByFloat: HINCRBYFLOAT, + HKEYS, + hKeys: HKEYS, + HLEN, + hLen: HLEN, + HMGET, + hmGet: HMGET, + HRANDFIELD_COUNT_WITHVALUES, + hRandFieldCountWithValues: HRANDFIELD_COUNT_WITHVALUES, + HRANDFIELD_COUNT, + hRandFieldCount: HRANDFIELD_COUNT, + HRANDFIELD, + hRandField: HRANDFIELD, + HSCAN, + hScan: HSCAN, + HSET, + hSet: HSET, + HSETNX, + hSetNX: HSETNX, + HSTRLEN, + hStrLen: HSTRLEN, + HVALS, + hVals: HVALS, + INCR, + incr: INCR, + INCRBY, + incrBy: INCRBY, + INCRBYFLOAT, + incrByFloat: INCRBYFLOAT, + LCS_IDX_WITHMATCHLEN, + lcsIdxWithMatchLen: LCS_IDX_WITHMATCHLEN, + LCS_IDX, + lcsIdx: LCS_IDX, + LCS_LEN, + lcsLen: LCS_LEN, + LCS, + lcs: LCS, + LINDEX, + lIndex: LINDEX, + LINSERT, + lInsert: LINSERT, + LLEN, + lLen: LLEN, + LMOVE, + lMove: LMOVE, + LMPOP, + lmPop: LMPOP, + LPOP_COUNT, + lPopCount: LPOP_COUNT, + LPOP, + lPop: LPOP, + LPOS_COUNT, + lPosCount: LPOS_COUNT, + LPOS, + lPos: LPOS, + LPUSH, + lPush: LPUSH, + LPUSHX, + lPushX: LPUSHX, + LRANGE, + lRange: LRANGE, + LREM, + lRem: LREM, + LSET, + lSet: LSET, + LTRIM, + lTrim: LTRIM, + MGET, + mGet: MGET, + MIGRATE, + migrate: MIGRATE, + MSET, + mSet: MSET, + MSETNX, + mSetNX: MSETNX, + OBJECT_ENCODING, + objectEncoding: OBJECT_ENCODING, + OBJECT_FREQ, + objectFreq: OBJECT_FREQ, + OBJECT_IDLETIME, + objectIdleTime: OBJECT_IDLETIME, + OBJECT_REFCOUNT, + objectRefCount: OBJECT_REFCOUNT, + PERSIST, + persist: PERSIST, + PEXPIRE, + pExpire: PEXPIRE, + PEXPIREAT, + pExpireAt: PEXPIREAT, + PEXPIRETIME, + pExpireTime: PEXPIRETIME, + PFADD, + pfAdd: PFADD, + PFCOUNT, + pfCount: PFCOUNT, + PFMERGE, + pfMerge: PFMERGE, + PSETEX, + pSetEx: PSETEX, + PTTL, + pTTL: PTTL, + PUBLISH, + publish: PUBLISH, + RENAME, + rename: RENAME, + RENAMENX, + renameNX: RENAMENX, + RPOP_COUNT, + rPopCount: RPOP_COUNT, + RPOP, + rPop: RPOP, + RPOPLPUSH, + rPopLPush: RPOPLPUSH, + RPUSH, + rPush: RPUSH, + RPUSHX, + rPushX: RPUSHX, + SADD, + sAdd: SADD, + SCARD, + sCard: SCARD, + SDIFF, + sDiff: SDIFF, + SDIFFSTORE, + sDiffStore: SDIFFSTORE, + SINTER, + sInter: SINTER, + SINTERCARD, + sInterCard: SINTERCARD, + SINTERSTORE, + sInterStore: SINTERSTORE, + SET, + set: SET, + SETBIT, + setBit: SETBIT, + SETEX, + setEx: SETEX, + SETNX, + setNX: SETNX, + SETRANGE, + setRange: SETRANGE, + SISMEMBER, + sIsMember: SISMEMBER, + SMEMBERS, + sMembers: SMEMBERS, + SMISMEMBER, + smIsMember: SMISMEMBER, + SMOVE, + sMove: SMOVE, + SORT_RO, + sortRo: SORT_RO, + SORT_STORE, + sortStore: SORT_STORE, + SORT, + sort: SORT, + SPOP, + sPop: SPOP, + SPUBLISH, + sPublish: SPUBLISH, + SRANDMEMBER_COUNT, + sRandMemberCount: SRANDMEMBER_COUNT, + SRANDMEMBER, + sRandMember: SRANDMEMBER, + SREM, + sRem: SREM, + SSCAN, + sScan: SSCAN, + STRLEN, + strLen: STRLEN, + SUNION, + sUnion: SUNION, + SUNIONSTORE, + sUnionStore: SUNIONSTORE, + TOUCH, + touch: TOUCH, + TTL, + ttl: TTL, + TYPE, + type: TYPE, + UNLINK, + unlink: UNLINK, + WATCH, + watch: WATCH, + XACK, + xAck: XACK, + XADD, + xAdd: XADD, + XAUTOCLAIM_JUSTID, + xAutoClaimJustId: XAUTOCLAIM_JUSTID, + XAUTOCLAIM, + xAutoClaim: XAUTOCLAIM, + XCLAIM, + xClaim: XCLAIM, + XCLAIM_JUSTID, + xClaimJustId: XCLAIM_JUSTID, + XDEL, + xDel: XDEL, + XGROUP_CREATE, + xGroupCreate: XGROUP_CREATE, + XGROUP_CREATECONSUMER, + xGroupCreateConsumer: XGROUP_CREATECONSUMER, + XGROUP_DELCONSUMER, + xGroupDelConsumer: XGROUP_DELCONSUMER, + XGROUP_DESTROY, + xGroupDestroy: XGROUP_DESTROY, + XGROUP_SETID, + xGroupSetId: XGROUP_SETID, + XINFO_CONSUMERS, + xInfoConsumers: XINFO_CONSUMERS, + XINFO_GROUPS, + xInfoGroups: XINFO_GROUPS, + XINFO_STREAM, + xInfoStream: XINFO_STREAM, + XLEN, + xLen: XLEN, + XPENDING_RANGE, + xPendingRange: XPENDING_RANGE, + XPENDING, + xPending: XPENDING, + XRANGE, + xRange: XRANGE, + XREAD, + xRead: XREAD, + XREADGROUP, + xReadGroup: XREADGROUP, + XREVRANGE, + xRevRange: XREVRANGE, + XSETID, + xSetId: XSETID, + XTRIM, + xTrim: XTRIM, + ZADD, + zAdd: ZADD, + ZCARD, + zCard: ZCARD, + ZCOUNT, + zCount: ZCOUNT, + ZDIFF_WITHSCORES, + zDiffWithScores: ZDIFF_WITHSCORES, + ZDIFF, + zDiff: ZDIFF, + ZDIFFSTORE, + zDiffStore: ZDIFFSTORE, + ZINCRBY, + zIncrBy: ZINCRBY, + ZINTER_WITHSCORES, + zInterWithScores: ZINTER_WITHSCORES, + ZINTER, + zInter: ZINTER, + ZINTERCARD, + zInterCard: ZINTERCARD, + ZINTERSTORE, + zInterStore: ZINTERSTORE, + ZLEXCOUNT, + zLexCount: ZLEXCOUNT, + ZMPOP, + zmPop: ZMPOP, + ZMSCORE, + zmScore: ZMSCORE, + ZPOPMAX_COUNT, + zPopMaxCount: ZPOPMAX_COUNT, + ZPOPMAX, + zPopMax: ZPOPMAX, + ZPOPMIN_COUNT, + zPopMinCount: ZPOPMIN_COUNT, + ZPOPMIN, + zPopMin: ZPOPMIN, + ZRANDMEMBER_COUNT_WITHSCORES, + zRandMemberCountWithScores: ZRANDMEMBER_COUNT_WITHSCORES, + ZRANDMEMBER_COUNT, + zRandMemberCount: ZRANDMEMBER_COUNT, + ZRANDMEMBER, + zRandMember: ZRANDMEMBER, + ZRANGE_WITHSCORES, + zRangeWithScores: ZRANGE_WITHSCORES, + ZRANGE, + zRange: ZRANGE, + ZRANGEBYLEX, + zRangeByLex: ZRANGEBYLEX, + ZRANGEBYSCORE_WITHSCORES, + zRangeByScoreWithScores: ZRANGEBYSCORE_WITHSCORES, + ZRANGEBYSCORE, + zRangeByScore: ZRANGEBYSCORE, + ZRANGESTORE, + zRangeStore: ZRANGESTORE, + ZRANK, + zRank: ZRANK, + ZREM, + zRem: ZREM, + ZREMRANGEBYLEX, + zRemRangeByLex: ZREMRANGEBYLEX, + ZREMRANGEBYRANK, + zRemRangeByRank: ZREMRANGEBYRANK, + ZREMRANGEBYSCORE, + zRemRangeByScore: ZREMRANGEBYSCORE, + ZREVRANK, + zRevRank: ZREVRANK, + ZSCAN, + zScan: ZSCAN, + ZSCORE, + zScore: ZSCORE, + ZUNION_WITHSCORES, + zUnionWithScores: ZUNION_WITHSCORES, + ZUNION, + zUnion: ZUNION, + ZUNIONSTORE, + zUnionStore: ZUNIONSTORE +}; + + +/***/ }), + +/***/ 74328: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +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, 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 _RedisCluster_instances, _RedisCluster_options, _RedisCluster_slots, _RedisCluster_Multi, _RedisCluster_execute; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const commands_1 = __nccwpck_require__(34254); +const cluster_slots_1 = __nccwpck_require__(12829); +const commander_1 = __nccwpck_require__(45602); +const events_1 = __nccwpck_require__(82361); +const multi_command_1 = __nccwpck_require__(26171); +const errors_1 = __nccwpck_require__(92711); +class RedisCluster extends events_1.EventEmitter { + static extractFirstKey(command, originalArgs, redisArgs) { + if (command.FIRST_KEY_INDEX === undefined) { + return undefined; + } + else if (typeof command.FIRST_KEY_INDEX === 'number') { + return redisArgs[command.FIRST_KEY_INDEX]; + } + return command.FIRST_KEY_INDEX(...originalArgs); + } + static create(options) { + return new ((0, commander_1.attachExtensions)({ + BaseClass: RedisCluster, + modulesExecutor: RedisCluster.prototype.commandsExecutor, + modules: options?.modules, + functionsExecutor: RedisCluster.prototype.functionsExecutor, + functions: options?.functions, + scriptsExecutor: RedisCluster.prototype.scriptsExecutor, + scripts: options?.scripts + }))(options); + } + get slots() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").slots; + } + get shards() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").shards; + } + get masters() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").masters; + } + get replicas() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").replicas; + } + get nodeByAddress() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").nodeByAddress; + } + get pubSubNode() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").pubSubNode; + } + get isOpen() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").isOpen; + } + constructor(options) { + super(); + _RedisCluster_instances.add(this); + _RedisCluster_options.set(this, void 0); + _RedisCluster_slots.set(this, void 0); + _RedisCluster_Multi.set(this, void 0); + Object.defineProperty(this, "multi", { + enumerable: true, + configurable: true, + writable: true, + value: this.MULTI + }); + Object.defineProperty(this, "subscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUBSCRIBE + }); + Object.defineProperty(this, "unsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.UNSUBSCRIBE + }); + Object.defineProperty(this, "pSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PSUBSCRIBE + }); + Object.defineProperty(this, "pUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.PUNSUBSCRIBE + }); + Object.defineProperty(this, "sSubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SSUBSCRIBE + }); + Object.defineProperty(this, "sUnsubscribe", { + enumerable: true, + configurable: true, + writable: true, + value: this.SUNSUBSCRIBE + }); + __classPrivateFieldSet(this, _RedisCluster_options, options, "f"); + __classPrivateFieldSet(this, _RedisCluster_slots, new cluster_slots_1.default(options, this.emit.bind(this)), "f"); + __classPrivateFieldSet(this, _RedisCluster_Multi, multi_command_1.default.extend(options), "f"); + } + duplicate(overrides) { + return new (Object.getPrototypeOf(this).constructor)({ + ...__classPrivateFieldGet(this, _RedisCluster_options, "f"), + ...overrides + }); + } + connect() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").connect(); + } + async commandsExecutor(command, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(command, args); + return (0, commander_1.transformCommandReply)(command, await this.sendCommand(RedisCluster.extractFirstKey(command, args, redisArgs), command.IS_READ_ONLY, redisArgs, options), redisArgs.preserve); + } + async sendCommand(firstKey, isReadonly, args, options) { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, firstKey, isReadonly, client => client.sendCommand(args, options)); + } + async functionsExecutor(fn, args, name) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(fn, args); + return (0, commander_1.transformCommandReply)(fn, await this.executeFunction(name, fn, args, redisArgs, options), redisArgs.preserve); + } + async executeFunction(name, fn, originalArgs, redisArgs, options) { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, RedisCluster.extractFirstKey(fn, originalArgs, redisArgs), fn.IS_READ_ONLY, client => client.executeFunction(name, fn, redisArgs, options)); + } + async scriptsExecutor(script, args) { + const { args: redisArgs, options } = (0, commander_1.transformCommandArguments)(script, args); + return (0, commander_1.transformCommandReply)(script, await this.executeScript(script, args, redisArgs, options), redisArgs.preserve); + } + async executeScript(script, originalArgs, redisArgs, options) { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, RedisCluster.extractFirstKey(script, originalArgs, redisArgs), script.IS_READ_ONLY, client => client.executeScript(script, redisArgs, options)); + } + MULTI(routing) { + return new (__classPrivateFieldGet(this, _RedisCluster_Multi, "f"))((commands, firstKey, chainId) => { + return __classPrivateFieldGet(this, _RedisCluster_instances, "m", _RedisCluster_execute).call(this, firstKey, false, client => client.multiExecutor(commands, undefined, chainId)); + }, routing); + } + async SUBSCRIBE(channels, listener, bufferMode) { + return (await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getPubSubClient()) + .SUBSCRIBE(channels, listener, bufferMode); + } + async UNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").executeUnsubscribeCommand(client => client.UNSUBSCRIBE(channels, listener, bufferMode)); + } + async PSUBSCRIBE(patterns, listener, bufferMode) { + return (await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getPubSubClient()) + .PSUBSCRIBE(patterns, listener, bufferMode); + } + async PUNSUBSCRIBE(patterns, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").executeUnsubscribeCommand(client => client.PUNSUBSCRIBE(patterns, listener, bufferMode)); + } + async SSUBSCRIBE(channels, listener, bufferMode) { + const maxCommandRedirections = __classPrivateFieldGet(this, _RedisCluster_options, "f").maxCommandRedirections ?? 16, firstChannel = Array.isArray(channels) ? channels[0] : channels; + let client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getShardedPubSubClient(firstChannel); + for (let i = 0;; i++) { + try { + return await client.SSUBSCRIBE(channels, listener, bufferMode); + } + catch (err) { + if (++i > maxCommandRedirections || !(err instanceof errors_1.ErrorReply)) { + throw err; + } + if (err.message.startsWith('MOVED')) { + await __classPrivateFieldGet(this, _RedisCluster_slots, "f").rediscover(client); + client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getShardedPubSubClient(firstChannel); + continue; + } + throw err; + } + } + } + SUNSUBSCRIBE(channels, listener, bufferMode) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").executeShardedUnsubscribeCommand(Array.isArray(channels) ? channels[0] : channels, client => client.SUNSUBSCRIBE(channels, listener, bufferMode)); + } + quit() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").quit(); + } + disconnect() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").disconnect(); + } + nodeClient(node) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").nodeClient(node); + } + getRandomNode() { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").getRandomNode(); + } + getSlotRandomNode(slot) { + return __classPrivateFieldGet(this, _RedisCluster_slots, "f").getSlotRandomNode(slot); + } + /** + * @deprecated use `.masters` instead + */ + getMasters() { + return this.masters; + } + /** + * @deprecated use `.slots[]` instead + */ + getSlotMaster(slot) { + return this.slots[slot].master; + } +} +exports["default"] = RedisCluster; +_RedisCluster_options = new WeakMap(), _RedisCluster_slots = new WeakMap(), _RedisCluster_Multi = new WeakMap(), _RedisCluster_instances = new WeakSet(), _RedisCluster_execute = async function _RedisCluster_execute(firstKey, isReadonly, executor) { + const maxCommandRedirections = __classPrivateFieldGet(this, _RedisCluster_options, "f").maxCommandRedirections ?? 16; + let client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getClient(firstKey, isReadonly); + for (let i = 0;; i++) { + try { + return await executor(client); + } + catch (err) { + if (++i > maxCommandRedirections || !(err instanceof errors_1.ErrorReply)) { + throw err; + } + if (err.message.startsWith('ASK')) { + const address = err.message.substring(err.message.lastIndexOf(' ') + 1); + let redirectTo = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getMasterByAddress(address); + if (!redirectTo) { + await __classPrivateFieldGet(this, _RedisCluster_slots, "f").rediscover(client); + redirectTo = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getMasterByAddress(address); + } + if (!redirectTo) { + throw new Error(`Cannot find node ${address}`); + } + await redirectTo.asking(); + client = redirectTo; + continue; + } + else if (err.message.startsWith('MOVED')) { + await __classPrivateFieldGet(this, _RedisCluster_slots, "f").rediscover(client); + client = await __classPrivateFieldGet(this, _RedisCluster_slots, "f").getClient(firstKey, isReadonly); + continue; + } + throw err; + } + } +}; +(0, commander_1.attachCommands)({ + BaseClass: RedisCluster, + commands: commands_1.default, + executor: RedisCluster.prototype.commandsExecutor +}); + + +/***/ }), + +/***/ 26171: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"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 _RedisClusterMultiCommand_multi, _RedisClusterMultiCommand_executor, _RedisClusterMultiCommand_firstKey; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const commands_1 = __nccwpck_require__(34254); +const multi_command_1 = __nccwpck_require__(31755); +const commander_1 = __nccwpck_require__(45602); +const _1 = __nccwpck_require__(74328); +class RedisClusterMultiCommand { + static extend(extensions) { + return (0, commander_1.attachExtensions)({ + BaseClass: RedisClusterMultiCommand, + modulesExecutor: RedisClusterMultiCommand.prototype.commandsExecutor, + modules: extensions?.modules, + functionsExecutor: RedisClusterMultiCommand.prototype.functionsExecutor, + functions: extensions?.functions, + scriptsExecutor: RedisClusterMultiCommand.prototype.scriptsExecutor, + scripts: extensions?.scripts + }); + } + constructor(executor, firstKey) { + _RedisClusterMultiCommand_multi.set(this, new multi_command_1.default()); + _RedisClusterMultiCommand_executor.set(this, void 0); + _RedisClusterMultiCommand_firstKey.set(this, void 0); + Object.defineProperty(this, "EXEC", { + enumerable: true, + configurable: true, + writable: true, + value: this.exec + }); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_executor, executor, "f"); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, firstKey, "f"); + } + commandsExecutor(command, args) { + const transformedArguments = command.transformArguments(...args); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? _1.default.extractFirstKey(command, args, transformedArguments), "f"); + return this.addCommand(undefined, transformedArguments, command.transformReply); + } + addCommand(firstKey, args, transformReply) { + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? firstKey, "f"); + __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").addCommand(args, transformReply); + return this; + } + functionsExecutor(fn, args, name) { + const transformedArguments = __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").addFunction(name, fn, args); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? _1.default.extractFirstKey(fn, args, transformedArguments), "f"); + return this; + } + scriptsExecutor(script, args) { + const transformedArguments = __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").addScript(script, args); + __classPrivateFieldSet(this, _RedisClusterMultiCommand_firstKey, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f") ?? _1.default.extractFirstKey(script, args, transformedArguments), "f"); + return this; + } + async exec(execAsPipeline = false) { + if (execAsPipeline) { + return this.execAsPipeline(); + } + return __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").handleExecReplies(await __classPrivateFieldGet(this, _RedisClusterMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f"), multi_command_1.default.generateChainId())); + } + async execAsPipeline() { + return __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").transformReplies(await __classPrivateFieldGet(this, _RedisClusterMultiCommand_executor, "f").call(this, __classPrivateFieldGet(this, _RedisClusterMultiCommand_multi, "f").queue, __classPrivateFieldGet(this, _RedisClusterMultiCommand_firstKey, "f"))); + } +} +exports["default"] = RedisClusterMultiCommand; +_RedisClusterMultiCommand_multi = new WeakMap(), _RedisClusterMultiCommand_executor = new WeakMap(), _RedisClusterMultiCommand_firstKey = new WeakMap(); +(0, commander_1.attachCommands)({ + BaseClass: RedisClusterMultiCommand, + commands: commands_1.default, + executor: RedisClusterMultiCommand.prototype.commandsExecutor +}); + + +/***/ }), + +/***/ 46318: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isCommandOptions = exports.commandOptions = void 0; +const symbol = Symbol('Command Options'); +function commandOptions(options) { + options[symbol] = true; + return options; +} +exports.commandOptions = commandOptions; +function isCommandOptions(options) { + return options?.[symbol] === true; +} +exports.isCommandOptions = isCommandOptions; + + +/***/ }), + +/***/ 45602: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.fCallArguments = exports.transformCommandReply = exports.transformLegacyCommandArguments = exports.transformCommandArguments = exports.attachExtensions = exports.attachCommands = void 0; +const command_options_1 = __nccwpck_require__(46318); +function attachCommands({ BaseClass, commands, executor }) { + for (const [name, command] of Object.entries(commands)) { + BaseClass.prototype[name] = function (...args) { + return executor.call(this, command, args, name); + }; + } +} +exports.attachCommands = attachCommands; +function attachExtensions(config) { + let Commander; + if (config.modules) { + Commander = attachWithNamespaces({ + BaseClass: config.BaseClass, + namespaces: config.modules, + executor: config.modulesExecutor + }); + } + if (config.functions) { + Commander = attachWithNamespaces({ + BaseClass: Commander ?? config.BaseClass, + namespaces: config.functions, + executor: config.functionsExecutor + }); + } + if (config.scripts) { + Commander ?? (Commander = class extends config.BaseClass { + }); + attachCommands({ + BaseClass: Commander, + commands: config.scripts, + executor: config.scriptsExecutor + }); + } + return Commander ?? config.BaseClass; +} +exports.attachExtensions = attachExtensions; +function attachWithNamespaces({ BaseClass, namespaces, executor }) { + const Commander = class extends BaseClass { + constructor(...args) { + super(...args); + for (const namespace of Object.keys(namespaces)) { + this[namespace] = Object.create(this[namespace], { + self: { + value: this + } + }); + } + } + }; + for (const [namespace, commands] of Object.entries(namespaces)) { + Commander.prototype[namespace] = {}; + for (const [name, command] of Object.entries(commands)) { + Commander.prototype[namespace][name] = function (...args) { + return executor.call(this.self, command, args, name); + }; + } + } + return Commander; +} +function transformCommandArguments(command, args) { + let options; + if ((0, command_options_1.isCommandOptions)(args[0])) { + options = args[0]; + args = args.slice(1); + } + return { + args: command.transformArguments(...args), + options + }; +} +exports.transformCommandArguments = transformCommandArguments; +function transformLegacyCommandArguments(args) { + return args.flat().map(arg => { + return typeof arg === 'number' || arg instanceof Date ? + arg.toString() : + arg; + }); +} +exports.transformLegacyCommandArguments = transformLegacyCommandArguments; +function transformCommandReply(command, rawReply, preserved) { + if (!command.transformReply) { + return rawReply; + } + return command.transformReply(rawReply, preserved); +} +exports.transformCommandReply = transformCommandReply; +function fCallArguments(name, fn, args) { + const actualArgs = [ + fn.IS_READ_ONLY ? 'FCALL_RO' : 'FCALL', + name + ]; + if (fn.NUMBER_OF_KEYS !== undefined) { + actualArgs.push(fn.NUMBER_OF_KEYS.toString()); + } + actualArgs.push(...args); + return actualArgs; +} +exports.fCallArguments = fCallArguments; + + +/***/ }), + +/***/ 30188: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(categoryName) { + const args = ['ACL', 'CAT']; + if (categoryName) { + args.push(categoryName); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 51895: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(username) { + return (0, generic_transformers_1.pushVerdictArguments)(['ACL', 'DELUSER'], username); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 35724: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(username, command) { + return [ + 'ACL', + 'DRYRUN', + username, + ...command + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 94260: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(bits) { + const args = ['ACL', 'GENPASS']; + if (bits) { + args.push(bits.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 56045: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(username) { + return ['ACL', 'GETUSER', username]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + flags: reply[1], + passwords: reply[3], + commands: reply[5], + keys: reply[7], + channels: reply[9], + selectors: reply[11] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 96496: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'LIST']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 37054: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'LOAD']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 75958: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(count) { + const args = ['ACL', 'LOG']; + if (count) { + args.push(count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(log => ({ + count: log[1], + reason: log[3], + context: log[5], + object: log[7], + username: log[9], + ageSeconds: Number(log[11]), + clientInfo: log[13] + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 48623: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'LOG', 'RESET']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 96276: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'SAVE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 90370: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(username, rule) { + return (0, generic_transformers_1.pushVerdictArguments)(['ACL', 'SETUSER', username], rule); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 53933: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'USERS']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 15164: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ACL', 'WHOAMI']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 31514: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value) { + return ['APPEND', key, value]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99555: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['ASKING']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 63181: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments({ username, password }) { + if (!username) { + return ['AUTH', password]; + } + return ['AUTH', username, password]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 10063: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['BGREWRITEAOF']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 91872: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(options) { + const args = ['BGSAVE']; + if (options?.SCHEDULE) { + args.push('SCHEDULE'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 70756: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, range) { + const args = ['BITCOUNT', key]; + if (range) { + args.push(range.start.toString(), range.end.toString()); + if (range.mode) { + args.push(range.mode); + } + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 1291: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, operations) { + const args = ['BITFIELD', key]; + for (const options of operations) { + switch (options.operation) { + case 'GET': + args.push('GET', options.encoding, options.offset.toString()); + break; + case 'SET': + args.push('SET', options.encoding, options.offset.toString(), options.value.toString()); + break; + case 'INCRBY': + args.push('INCRBY', options.encoding, options.offset.toString(), options.increment.toString()); + break; + case 'OVERFLOW': + args.push('OVERFLOW', options.behavior); + break; + } + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 63109: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, operations) { + const args = ['BITFIELD_RO', key]; + for (const operation of operations) { + args.push('GET', operation.encoding, operation.offset.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 86195: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +function transformArguments(operation, destKey, key) { + return (0, generic_transformers_1.pushVerdictArguments)(['BITOP', operation, destKey], key); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 15870: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, bit, start, end, mode) { + const args = ['BITPOS', key, bit.toString()]; + if (typeof start === 'number') { + args.push(start.toString()); + } + if (typeof end === 'number') { + args.push(end.toString()); + } + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 24084: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, sourceDirection, destinationDirection, timeout) { + return [ + 'BLMOVE', + source, + destination, + sourceDirection, + destinationDirection, + timeout.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 61961: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 3; +function transformArguments(timeout, keys, side, options) { + return (0, generic_transformers_1.transformLMPopArguments)(['BLMPOP', timeout.toString()], keys, side, options); +} +exports.transformArguments = transformArguments; +var LMPOP_1 = __nccwpck_require__(91222); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return LMPOP_1.transformReply; } })); + + +/***/ }), + +/***/ 54476: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(keys, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BLPOP'], keys); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (reply === null) + return null; + return { + key: reply[0], + element: reply[1] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 31939: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BRPOP'], key); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +var BLPOP_1 = __nccwpck_require__(54476); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return BLPOP_1.transformReply; } })); + + +/***/ }), + +/***/ 63783: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, timeout) { + return ['BRPOPLPUSH', source, destination, timeout.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 62049: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 3; +function transformArguments(timeout, keys, side, options) { + return (0, generic_transformers_1.transformZMPopArguments)(['BZMPOP', timeout.toString()], keys, side, options); +} +exports.transformArguments = transformArguments; +var ZMPOP_1 = __nccwpck_require__(90536); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return ZMPOP_1.transformReply; } })); + + +/***/ }), + +/***/ 32107: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BZPOPMAX'], key); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (!reply) + return null; + return { + key: reply[0], + value: reply[1], + score: (0, generic_transformers_1.transformNumberInfinityReply)(reply[2]) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 70946: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timeout) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['BZPOPMIN'], key); + args.push(timeout.toString()); + return args; +} +exports.transformArguments = transformArguments; +var BZPOPMAX_1 = __nccwpck_require__(32107); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return BZPOPMAX_1.transformReply; } })); + + +/***/ }), + +/***/ 45070: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(value) { + return [ + 'CLIENT', + 'CACHING', + value ? 'YES' : 'NO' + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 236: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'GETNAME']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 87963: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'GETREDIR']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 95572: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['CLIENT', 'ID']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 35532: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['CLIENT', 'INFO']; +} +exports.transformArguments = transformArguments; +const CLIENT_INFO_REGEX = /([^\s=]+)=([^\s]*)/g; +function transformReply(rawReply) { + const map = {}; + for (const item of rawReply.matchAll(CLIENT_INFO_REGEX)) { + map[item[1]] = item[2]; + } + const reply = { + id: Number(map.id), + addr: map.addr, + fd: Number(map.fd), + name: map.name, + age: Number(map.age), + idle: Number(map.idle), + flags: map.flags, + db: Number(map.db), + sub: Number(map.sub), + psub: Number(map.psub), + multi: Number(map.multi), + qbuf: Number(map.qbuf), + qbufFree: Number(map['qbuf-free']), + argvMem: Number(map['argv-mem']), + obl: Number(map.obl), + oll: Number(map.oll), + omem: Number(map.omem), + totMem: Number(map['tot-mem']), + events: map.events, + cmd: map.cmd, + user: map.user + }; + if (map.laddr !== undefined) { + reply.laddr = map.laddr; + } + if (map.redir !== undefined) { + reply.redir = Number(map.redir); + } + if (map.ssub !== undefined) { + reply.ssub = Number(map.ssub); + } + if (map['multi-mem'] !== undefined) { + reply.multiMem = Number(map['multi-mem']); + } + if (map.resp !== undefined) { + reply.resp = Number(map.resp); + } + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 28984: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.ClientKillFilters = void 0; +var ClientKillFilters; +(function (ClientKillFilters) { + ClientKillFilters["ADDRESS"] = "ADDR"; + ClientKillFilters["LOCAL_ADDRESS"] = "LADDR"; + ClientKillFilters["ID"] = "ID"; + ClientKillFilters["TYPE"] = "TYPE"; + ClientKillFilters["USER"] = "USER"; + ClientKillFilters["SKIP_ME"] = "SKIPME"; +})(ClientKillFilters = exports.ClientKillFilters || (exports.ClientKillFilters = {})); +function transformArguments(filters) { + const args = ['CLIENT', 'KILL']; + if (Array.isArray(filters)) { + for (const filter of filters) { + pushFilter(args, filter); + } + } + else { + pushFilter(args, filters); + } + return args; +} +exports.transformArguments = transformArguments; +function pushFilter(args, filter) { + if (filter === ClientKillFilters.SKIP_ME) { + args.push('SKIPME'); + return; + } + args.push(filter.filter); + switch (filter.filter) { + case ClientKillFilters.ADDRESS: + args.push(filter.address); + break; + case ClientKillFilters.LOCAL_ADDRESS: + args.push(filter.localAddress); + break; + case ClientKillFilters.ID: + args.push(typeof filter.id === 'number' ? + filter.id.toString() : + filter.id); + break; + case ClientKillFilters.TYPE: + args.push(filter.type); + break; + case ClientKillFilters.USER: + args.push(filter.username); + break; + case ClientKillFilters.SKIP_ME: + args.push(filter.skipMe ? 'yes' : 'no'); + break; + } +} + + +/***/ }), + +/***/ 50785: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +const CLIENT_INFO_1 = __nccwpck_require__(35532); +exports.IS_READ_ONLY = true; +function transformArguments(filter) { + let args = ['CLIENT', 'LIST']; + if (filter) { + if (filter.TYPE !== undefined) { + args.push('TYPE', filter.TYPE); + } + else { + args.push('ID'); + args = (0, generic_transformers_1.pushVerdictArguments)(args, filter.ID); + } + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const split = rawReply.split('\n'), length = split.length - 1, reply = []; + for (let i = 0; i < length; i++) { + reply.push((0, CLIENT_INFO_1.transformReply)(split[i])); + } + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 50955: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(value) { + return [ + 'CLIENT', + 'NO-EVICT', + value ? 'ON' : 'OFF' + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 50131: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(timeout, mode) { + const args = [ + 'CLIENT', + 'PAUSE', + timeout.toString() + ]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 44169: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(name) { + return ['CLIENT', 'SETNAME', name]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 94365: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode, options) { + const args = [ + 'CLIENT', + 'TRACKING', + mode ? 'ON' : 'OFF' + ]; + if (mode) { + if (options?.REDIRECT) { + args.push('REDIRECT', options.REDIRECT.toString()); + } + if (isBroadcast(options)) { + args.push('BCAST'); + if (options?.PREFIX) { + if (Array.isArray(options.PREFIX)) { + for (const prefix of options.PREFIX) { + args.push('PREFIX', prefix); + } + } + else { + args.push('PREFIX', options.PREFIX); + } + } + } + else if (isOptIn(options)) { + args.push('OPTIN'); + } + else if (isOptOut(options)) { + args.push('OPTOUT'); + } + if (options?.NOLOOP) { + args.push('NOLOOP'); + } + } + return args; +} +exports.transformArguments = transformArguments; +function isBroadcast(options) { + return options?.BCAST === true; +} +function isOptIn(options) { + return options?.OPTIN === true; +} +function isOptOut(options) { + return options?.OPTOUT === true; +} + + +/***/ }), + +/***/ 38747: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'TRACKINGINFO']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + flags: new Set(reply[1]), + redirect: reply[3], + prefixes: reply[5] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 72211: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLIENT', 'UNPAUSE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 21546: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(slots) { + return (0, generic_transformers_1.pushVerdictNumberArguments)(['CLUSTER', 'ADDSLOTS'], slots); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 53024: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(ranges) { + return (0, generic_transformers_1.pushSlotRangesArguments)(['CLUSTER', 'ADDSLOTSRANGE'], ranges); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 25869: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'BUMPEPOCH']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 39495: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'COUNT-FAILURE-REPORTS', nodeId]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 91738: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(slot) { + return ['CLUSTER', 'COUNTKEYSINSLOT', slot.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74514: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(slots) { + return (0, generic_transformers_1.pushVerdictNumberArguments)(['CLUSTER', 'DELSLOTS'], slots); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 56968: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(ranges) { + return (0, generic_transformers_1.pushSlotRangesArguments)(['CLUSTER', 'DELSLOTSRANGE'], ranges); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 91642: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FailoverModes = void 0; +var FailoverModes; +(function (FailoverModes) { + FailoverModes["FORCE"] = "FORCE"; + FailoverModes["TAKEOVER"] = "TAKEOVER"; +})(FailoverModes = exports.FailoverModes || (exports.FailoverModes = {})); +function transformArguments(mode) { + const args = ['CLUSTER', 'FAILOVER']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 97291: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'FLUSHSLOTS']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 31437: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'FORGET', nodeId]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 42329: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(slot, count) { + return ['CLUSTER', 'GETKEYSINSLOT', slot.toString(), count.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 33559: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.extractLineValue = exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'INFO']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + const lines = reply.split('\r\n'); + return { + state: extractLineValue(lines[0]), + slots: { + assigned: Number(extractLineValue(lines[1])), + ok: Number(extractLineValue(lines[2])), + pfail: Number(extractLineValue(lines[3])), + fail: Number(extractLineValue(lines[4])) + }, + knownNodes: Number(extractLineValue(lines[5])), + size: Number(extractLineValue(lines[6])), + currentEpoch: Number(extractLineValue(lines[7])), + myEpoch: Number(extractLineValue(lines[8])), + stats: { + messagesSent: Number(extractLineValue(lines[9])), + messagesReceived: Number(extractLineValue(lines[10])) + } + }; +} +exports.transformReply = transformReply; +function extractLineValue(line) { + return line.substring(line.indexOf(':') + 1); +} +exports.extractLineValue = extractLineValue; + + +/***/ }), + +/***/ 89403: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(key) { + return ['CLUSTER', 'KEYSLOT', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 32483: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'LINKS']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(peerLink => ({ + direction: peerLink[1], + node: peerLink[3], + createTime: Number(peerLink[5]), + events: peerLink[7], + sendBufferAllocated: Number(peerLink[9]), + sendBufferUsed: Number(peerLink[11]) + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 9657: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(ip, port) { + return ['CLUSTER', 'MEET', ip, port.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 94178: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'MYID']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 29457: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.RedisClusterNodeLinkStates = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'NODES']; +} +exports.transformArguments = transformArguments; +var RedisClusterNodeLinkStates; +(function (RedisClusterNodeLinkStates) { + RedisClusterNodeLinkStates["CONNECTED"] = "connected"; + RedisClusterNodeLinkStates["DISCONNECTED"] = "disconnected"; +})(RedisClusterNodeLinkStates = exports.RedisClusterNodeLinkStates || (exports.RedisClusterNodeLinkStates = {})); +function transformReply(reply) { + const lines = reply.split('\n'); + lines.pop(); // last line is empty + const mastersMap = new Map(), replicasMap = new Map(); + for (const line of lines) { + const [id, address, flags, masterId, pingSent, pongRecv, configEpoch, linkState, ...slots] = line.split(' '), node = { + id, + address, + ...transformNodeAddress(address), + flags: flags.split(','), + pingSent: Number(pingSent), + pongRecv: Number(pongRecv), + configEpoch: Number(configEpoch), + linkState: linkState + }; + if (masterId === '-') { + let replicas = replicasMap.get(id); + if (!replicas) { + replicas = []; + replicasMap.set(id, replicas); + } + mastersMap.set(id, { + ...node, + slots: slots.map(slot => { + // TODO: importing & exporting (https://redis.io/commands/cluster-nodes#special-slot-entries) + const [fromString, toString] = slot.split('-', 2), from = Number(fromString); + return { + from, + to: toString ? Number(toString) : from + }; + }), + replicas + }); + } + else { + const replicas = replicasMap.get(masterId); + if (!replicas) { + replicasMap.set(masterId, [node]); + } + else { + replicas.push(node); + } + } + } + return [...mastersMap.values()]; +} +exports.transformReply = transformReply; +function transformNodeAddress(address) { + const indexOfColon = address.lastIndexOf(':'), indexOfAt = address.indexOf('@', indexOfColon), host = address.substring(0, indexOfColon); + if (indexOfAt === -1) { + return { + host, + port: Number(address.substring(indexOfColon + 1)), + cport: null + }; + } + return { + host: address.substring(0, indexOfColon), + port: Number(address.substring(indexOfColon + 1, indexOfAt)), + cport: Number(address.substring(indexOfAt + 1)) + }; +} + + +/***/ }), + +/***/ 69709: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'REPLICAS', nodeId]; +} +exports.transformArguments = transformArguments; +var CLUSTER_NODES_1 = __nccwpck_require__(29457); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return CLUSTER_NODES_1.transformReply; } })); + + +/***/ }), + +/***/ 24540: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(nodeId) { + return ['CLUSTER', 'REPLICATE', nodeId]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 29827: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['CLUSTER', 'RESET']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 28830: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'SAVECONFIG']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 73061: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(configEpoch) { + return ['CLUSTER', 'SET-CONFIG-EPOCH', configEpoch.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 21168: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.ClusterSlotStates = void 0; +var ClusterSlotStates; +(function (ClusterSlotStates) { + ClusterSlotStates["IMPORTING"] = "IMPORTING"; + ClusterSlotStates["MIGRATING"] = "MIGRATING"; + ClusterSlotStates["STABLE"] = "STABLE"; + ClusterSlotStates["NODE"] = "NODE"; +})(ClusterSlotStates = exports.ClusterSlotStates || (exports.ClusterSlotStates = {})); +function transformArguments(slot, state, nodeId) { + const args = ['CLUSTER', 'SETSLOT', slot.toString(), state]; + if (nodeId) { + args.push(nodeId); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 96206: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['CLUSTER', 'SLOTS']; +} +exports.transformArguments = transformArguments; +; +function transformReply(reply) { + return reply.map(([from, to, master, ...replicas]) => { + return { + from, + to, + master: transformNode(master), + replicas: replicas.map(transformNode) + }; + }); +} +exports.transformReply = transformReply; +function transformNode([ip, port, id]) { + return { + ip, + port, + id + }; +} + + +/***/ }), + +/***/ 20736: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['COMMAND']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(generic_transformers_1.transformCommandReply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 28820: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['COMMAND', 'COUNT']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 86385: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(args) { + return ['COMMAND', 'GETKEYS', ...args]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 85975: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(args) { + return ['COMMAND', 'GETKEYSANDFLAGS', ...args]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(([key, flags]) => ({ + key, + flags + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 97029: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.IS_READ_ONLY = true; +function transformArguments(commands) { + return ['COMMAND', 'INFO', ...commands]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(command => command ? (0, generic_transformers_1.transformCommandReply)(command) : null); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 99213: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FilterBy = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +var FilterBy; +(function (FilterBy) { + FilterBy["MODULE"] = "MODULE"; + FilterBy["ACLCAT"] = "ACLCAT"; + FilterBy["PATTERN"] = "PATTERN"; +})(FilterBy = exports.FilterBy || (exports.FilterBy = {})); +function transformArguments(filter) { + const args = ['COMMAND', 'LIST']; + if (filter) { + args.push('FILTERBY', filter.filterBy, filter.value); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 68287: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(parameter) { + return ['CONFIG', 'GET', parameter]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } })); + + +/***/ }), + +/***/ 62848: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CONFIG', 'RESETSTAT']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 30860: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['CONFIG', 'REWRITE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 37134: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(...[parameterOrConfig, value]) { + const args = ['CONFIG', 'SET']; + if (typeof parameterOrConfig === 'string') { + args.push(parameterOrConfig, value); + } + else { + for (const [key, value] of Object.entries(parameterOrConfig)) { + args.push(key, value); + } + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 91790: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, options) { + const args = ['COPY', source, destination]; + if (options?.destinationDb) { + args.push('DB', options.destinationDb.toString()); + } + if (options?.replace) { + args.push('REPLACE'); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 16715: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['DBSIZE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 90336: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['DECR', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 90030: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, decrement) { + return ['DECRBY', key, decrement.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 10715: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['DEL'], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 92556: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['DISCARD']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 67088: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['DUMP', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 94631: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(message) { + return ['ECHO', message]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 47450: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +function transformArguments(script, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVAL', script], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 66863: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +function transformArguments(sha1, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVALSHA', sha1], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 93480: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +exports.IS_READ_ONLY = true; +function transformArguments(sha1, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVALSHA_RO', sha1], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 92078: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +exports.IS_READ_ONLY = true; +function transformArguments(script, options) { + return (0, generic_transformers_1.pushEvalArguments)(['EVAL_RO', script], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 25615: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['EXISTS'], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 70219: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, seconds, mode) { + const args = ['EXPIRE', key, seconds.toString()]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 18295: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timestamp, mode) { + const args = [ + 'EXPIREAT', + key, + (0, generic_transformers_1.transformEXAT)(timestamp) + ]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } })); + + +/***/ }), + +/***/ 966: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['EXPIRETIME', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 26708: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(options) { + const args = ['FAILOVER']; + if (options?.TO) { + args.push('TO', options.TO.host, options.TO.port.toString()); + if (options.TO.FORCE) { + args.push('FORCE'); + } + } + if (options?.ABORT) { + args.push('ABORT'); + } + if (options?.TIMEOUT) { + args.push('TIMEOUT', options.TIMEOUT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 64510: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +function transformArguments(fn, options) { + return (0, generic_transformers_1.pushEvalArguments)(['FCALL', fn], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 8820: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = generic_transformers_1.evalFirstKeyIndex; +exports.IS_READ_ONLY = true; +function transformArguments(fn, options) { + return (0, generic_transformers_1.pushEvalArguments)(['FCALL_RO', fn], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 7727: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.RedisFlushModes = void 0; +var RedisFlushModes; +(function (RedisFlushModes) { + RedisFlushModes["ASYNC"] = "ASYNC"; + RedisFlushModes["SYNC"] = "SYNC"; +})(RedisFlushModes = exports.RedisFlushModes || (exports.RedisFlushModes = {})); +function transformArguments(mode) { + const args = ['FLUSHALL']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 42484: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['FLUSHDB']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 26658: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(library) { + return ['FUNCTION', 'DELETE', library]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12334: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['FUNCTION', 'DUMP']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 67149: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['FUNCTION', 'FLUSH']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 11476: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['FUNCTION', 'KILL']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 63706: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(pattern) { + const args = ['FUNCTION', 'LIST']; + if (pattern) { + args.push(pattern); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(generic_transformers_1.transformFunctionListItemReply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 10968: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +const FUNCTION_LIST_1 = __nccwpck_require__(63706); +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(pattern) { + const args = (0, FUNCTION_LIST_1.transformArguments)(pattern); + args.push('WITHCODE'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(library => ({ + ...(0, generic_transformers_1.transformFunctionListItemReply)(library), + libraryCode: library[7] + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 81736: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(code, options) { + const args = ['FUNCTION', 'LOAD']; + if (options?.REPLACE) { + args.push('REPLACE'); + } + args.push(code); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 88175: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(dump, mode) { + const args = ['FUNCTION', 'RESTORE', dump]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 6476: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['FUNCTION', 'STATS']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + const engines = Object.create(null); + for (let i = 0; i < reply[3].length; i++) { + engines[reply[3][i]] = { + librariesCount: reply[3][++i][1], + functionsCount: reply[3][i][3] + }; + } + return { + runningScript: reply[1] === null ? null : { + name: reply[1][1], + command: reply[1][3], + durationMs: reply[1][5] + }, + engines + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 25522: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, toAdd, options) { + const args = ['GEOADD', key]; + if (options?.NX) { + args.push('NX'); + } + else if (options?.XX) { + args.push('XX'); + } + if (options?.CH) { + args.push('CH'); + } + for (const { longitude, latitude, member } of (Array.isArray(toAdd) ? toAdd : [toAdd])) { + args.push(longitude.toString(), latitude.toString(), member); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12294: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member1, member2, unit) { + const args = ['GEODIST', key, member1, member2]; + if (unit) { + args.push(unit); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply === null ? null : Number(reply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 63902: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['GEOHASH', key], member); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 19864: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['GEOPOS', key], member); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(coordinates => coordinates === null ? null : { + longitude: coordinates[0], + latitude: coordinates[1] + }); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 73893: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, coordinates, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUS'], key, coordinates, radius, unit, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 13522: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUSBYMEMBER'], key, member, radius, unit, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 77491: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +var GEORADIUSBYMEMBER_1 = __nccwpck_require__(13522); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEORADIUSBYMEMBER_1.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEORADIUSBYMEMBER_1.IS_READ_ONLY; } })); +function transformArguments(key, member, radius, unit, destination, options) { + return (0, generic_transformers_1.pushGeoRadiusStoreArguments)(['GEORADIUSBYMEMBER'], key, member, radius, unit, destination, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 47318: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUSBYMEMBER_RO'], key, member, radius, unit, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99386: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUSBYMEMBER_RO_1 = __nccwpck_require__(47318); +var GEORADIUSBYMEMBER_RO_2 = __nccwpck_require__(47318); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEORADIUSBYMEMBER_RO_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEORADIUSBYMEMBER_RO_2.IS_READ_ONLY; } })); +function transformArguments(key, member, radius, unit, replyWith, options) { + const args = (0, GEORADIUSBYMEMBER_RO_1.transformArguments)(key, member, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } })); + + +/***/ }), + +/***/ 57814: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUSBYMEMBER_1 = __nccwpck_require__(13522); +var GEORADIUSBYMEMBER_2 = __nccwpck_require__(13522); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEORADIUSBYMEMBER_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEORADIUSBYMEMBER_2.IS_READ_ONLY; } })); +function transformArguments(key, member, radius, unit, replyWith, options) { + const args = (0, GEORADIUSBYMEMBER_1.transformArguments)(key, member, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } })); + + +/***/ }), + +/***/ 99549: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +var GEORADIUS_1 = __nccwpck_require__(73893); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEORADIUS_1.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEORADIUS_1.IS_READ_ONLY; } })); +function transformArguments(key, coordinates, radius, unit, destination, options) { + return (0, generic_transformers_1.pushGeoRadiusStoreArguments)(['GEORADIUS'], key, coordinates, radius, unit, destination, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 85891: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, coordinates, radius, unit, options) { + return (0, generic_transformers_1.pushGeoRadiusArguments)(['GEORADIUS_RO'], key, coordinates, radius, unit, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 62771: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUS_RO_1 = __nccwpck_require__(85891); +var GEORADIUS_RO_2 = __nccwpck_require__(85891); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEORADIUS_RO_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEORADIUS_RO_2.IS_READ_ONLY; } })); +function transformArguments(key, coordinates, radius, unit, replyWith, options) { + const args = (0, GEORADIUS_RO_1.transformArguments)(key, coordinates, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } })); + + +/***/ }), + +/***/ 12070: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEORADIUS_1 = __nccwpck_require__(73893); +var GEORADIUS_2 = __nccwpck_require__(73893); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEORADIUS_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEORADIUS_2.IS_READ_ONLY; } })); +function transformArguments(key, coordinates, radius, unit, replyWith, options) { + const args = (0, GEORADIUS_1.transformArguments)(key, coordinates, radius, unit, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } })); + + +/***/ }), + +/***/ 47568: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, from, by, options) { + return (0, generic_transformers_1.pushGeoSearchArguments)(['GEOSEARCH'], key, from, by, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 37377: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +var GEOSEARCH_1 = __nccwpck_require__(47568); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEOSEARCH_1.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEOSEARCH_1.IS_READ_ONLY; } })); +function transformArguments(destination, source, from, by, options) { + const args = (0, generic_transformers_1.pushGeoSearchArguments)(['GEOSEARCHSTORE', destination], source, from, by, options); + if (options?.STOREDIST) { + args.push('STOREDIST'); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (typeof reply !== 'number') { + throw new TypeError(`https://github.com/redis/redis/issues/9261`); + } + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 27764: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const GEOSEARCH_1 = __nccwpck_require__(47568); +var GEOSEARCH_2 = __nccwpck_require__(47568); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return GEOSEARCH_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return GEOSEARCH_2.IS_READ_ONLY; } })); +function transformArguments(key, from, by, replyWith, options) { + const args = (0, GEOSEARCH_1.transformArguments)(key, from, by, options); + args.push(...replyWith); + args.preserve = replyWith; + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformGeoMembersWithReply; } })); + + +/***/ }), + +/***/ 15574: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['GET', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 58572: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, offset) { + return ['GETBIT', key, offset.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 73962: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['GETDEL', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74000: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, mode) { + const args = ['GETEX', key]; + if ('EX' in mode) { + args.push('EX', mode.EX.toString()); + } + else if ('PX' in mode) { + args.push('PX', mode.PX.toString()); + } + else if ('EXAT' in mode) { + args.push('EXAT', (0, generic_transformers_1.transformEXAT)(mode.EXAT)); + } + else if ('PXAT' in mode) { + args.push('PXAT', (0, generic_transformers_1.transformPXAT)(mode.PXAT)); + } + else { // PERSIST + args.push('PERSIST'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 15955: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, end) { + return ['GETRANGE', key, start.toString(), end.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 76234: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value) { + return ['GETSET', key, value]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74763: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field) { + return (0, generic_transformers_1.pushVerdictArguments)(['HDEL', key], field); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 96969: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(options) { + const args = ['HELLO']; + if (options) { + args.push(options.protover.toString()); + if (options.auth) { + args.push('AUTH', options.auth.username, options.auth.password); + } + if (options.clientName) { + args.push('SETNAME', options.clientName); + } + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + server: reply[1], + version: reply[3], + proto: reply[5], + id: reply[7], + mode: reply[9], + role: reply[11], + modules: reply[13] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 94622: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field) { + return ['HEXISTS', key, field]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 30011: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, field) { + return ['HGET', key, field]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 46560: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.TRANSFORM_LEGACY_REPLY = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +exports.TRANSFORM_LEGACY_REPLY = true; +function transformArguments(key) { + return ['HGETALL', key]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } })); + + +/***/ }), + +/***/ 71194: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field, increment) { + return ['HINCRBY', key, field, increment.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 72187: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field, increment) { + return ['HINCRBYFLOAT', key, field, increment.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 71367: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['HKEYS', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 98332: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['HLEN', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 11818: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fields) { + return (0, generic_transformers_1.pushVerdictArguments)(['HMGET', key], fields); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12374: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['HRANDFIELD', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 71192: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const HRANDFIELD_1 = __nccwpck_require__(12374); +var HRANDFIELD_2 = __nccwpck_require__(12374); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return HRANDFIELD_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return HRANDFIELD_2.IS_READ_ONLY; } })); +function transformArguments(key, count) { + return [ + ...(0, HRANDFIELD_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 243: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const HRANDFIELD_COUNT_1 = __nccwpck_require__(71192); +var HRANDFIELD_COUNT_2 = __nccwpck_require__(71192); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return HRANDFIELD_COUNT_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return HRANDFIELD_COUNT_2.IS_READ_ONLY; } })); +function transformArguments(key, count) { + return [ + ...(0, HRANDFIELD_COUNT_1.transformArguments)(key, count), + 'WITHVALUES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformTuplesReply; } })); + + +/***/ }), + +/***/ 32882: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, cursor, options) { + return (0, generic_transformers_1.pushScanArguments)([ + 'HSCAN', + key + ], cursor, options); +} +exports.transformArguments = transformArguments; +function transformReply([cursor, rawTuples]) { + const parsedTuples = []; + for (let i = 0; i < rawTuples.length; i += 2) { + parsedTuples.push({ + field: rawTuples[i], + value: rawTuples[i + 1] + }); + } + return { + cursor: Number(cursor), + tuples: parsedTuples + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 32429: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(...[key, value, fieldValue]) { + const args = ['HSET', key]; + if (typeof value === 'string' || typeof value === 'number' || Buffer.isBuffer(value)) { + args.push(convertValue(value), convertValue(fieldValue)); + } + else if (value instanceof Map) { + pushMap(args, value); + } + else if (Array.isArray(value)) { + pushTuples(args, value); + } + else { + pushObject(args, value); + } + return args; +} +exports.transformArguments = transformArguments; +function pushMap(args, map) { + for (const [key, value] of map.entries()) { + args.push(convertValue(key), convertValue(value)); + } +} +function pushTuples(args, tuples) { + for (const tuple of tuples) { + if (Array.isArray(tuple)) { + pushTuples(args, tuple); + continue; + } + args.push(convertValue(tuple)); + } +} +function pushObject(args, object) { + for (const key of Object.keys(object)) { + args.push(convertValue(key), convertValue(object[key])); + } +} +function convertValue(value) { + return typeof value === 'number' ? + value.toString() : + value; +} + + +/***/ }), + +/***/ 48535: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field, value) { + return ['HSETNX', key, field, value]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 33762: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, field) { + return ['HSTRLEN', key, field]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 15359: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['HVALS', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 50097: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['INCR', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 13359: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, increment) { + return ['INCRBY', key, increment.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 28225: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, increment) { + return ['INCRBYFLOAT', key, increment.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 98067: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(section) { + const args = ['INFO']; + if (section) { + args.push(section); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 84204: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(pattern) { + return ['KEYS', pattern]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 7280: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['LASTSAVE']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return new Date(reply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 51549: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['LATENCY', 'DOCTOR']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 14775: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(event) { + return ['LATENCY', 'GRAPH', event]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 59458: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key1, key2) { + return [ + 'LCS', + key1, + key2 + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 15375: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +const LCS_1 = __nccwpck_require__(59458); +var LCS_2 = __nccwpck_require__(59458); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } })); +function transformArguments(key1, key2) { + const args = (0, LCS_1.transformArguments)(key1, key2); + args.push('IDX'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + matches: reply[1].map(([key1, key2]) => ({ + key1: (0, generic_transformers_1.transformRangeReply)(key1), + key2: (0, generic_transformers_1.transformRangeReply)(key2) + })), + length: reply[3] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 47011: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +const LCS_1 = __nccwpck_require__(59458); +var LCS_2 = __nccwpck_require__(59458); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } })); +function transformArguments(key1, key2) { + const args = (0, LCS_1.transformArguments)(key1, key2); + args.push('IDX', 'WITHMATCHLEN'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + matches: reply[1].map(([key1, key2, length]) => ({ + key1: (0, generic_transformers_1.transformRangeReply)(key1), + key2: (0, generic_transformers_1.transformRangeReply)(key2), + length + })), + length: reply[3] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 49151: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const LCS_1 = __nccwpck_require__(59458); +var LCS_2 = __nccwpck_require__(59458); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return LCS_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return LCS_2.IS_READ_ONLY; } })); +function transformArguments(key1, key2) { + const args = (0, LCS_1.transformArguments)(key1, key2); + args.push('LEN'); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 84313: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, index) { + return ['LINDEX', key, index.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 46439: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, position, pivot, element) { + return [ + 'LINSERT', + key, + position, + pivot, + element + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 89128: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['LLEN', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 39832: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, sourceSide, destinationSide) { + return [ + 'LMOVE', + source, + destination, + sourceSide, + destinationSide, + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 91222: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +function transformArguments(keys, side, options) { + return (0, generic_transformers_1.transformLMPopArguments)(['LMPOP'], keys, side, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 78445: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(version, ...optionalArguments) { + const args = ['LOLWUT']; + if (version) { + args.push('VERSION', version.toString(), ...optionalArguments.map(String)); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 36266: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['LPOP', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 70010: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count) { + return ['LPOP', key, count.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 52069: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, element, options) { + const args = ['LPOS', key, element]; + if (typeof options?.RANK === 'number') { + args.push('RANK', options.RANK.toString()); + } + if (typeof options?.MAXLEN === 'number') { + args.push('MAXLEN', options.MAXLEN.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 60578: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +var LPOS_1 = __nccwpck_require__(52069); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return LPOS_1.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return LPOS_1.IS_READ_ONLY; } })); +function transformArguments(key, element, count, options) { + const args = ['LPOS', key, element]; + if (typeof options?.RANK === 'number') { + args.push('RANK', options.RANK.toString()); + } + args.push('COUNT', count.toString()); + if (typeof options?.MAXLEN === 'number') { + args.push('MAXLEN', options.MAXLEN.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 65040: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, elements) { + return (0, generic_transformers_1.pushVerdictArguments)(['LPUSH', key], elements); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 62450: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['LPUSHX', key], element); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 83635: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, stop) { + return [ + 'LRANGE', + key, + start.toString(), + stop.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 40636: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count, element) { + return [ + 'LREM', + key, + count.toString(), + element + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 54998: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, index, element) { + return [ + 'LSET', + key, + index.toString(), + element + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 97130: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, start, stop) { + return [ + 'LTRIM', + key, + start.toString(), + stop.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 14136: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'DOCTOR']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 57360: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'MALLOC-STATS']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12023: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'PURGE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 83620: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['MEMORY', 'STATS']; +} +exports.transformArguments = transformArguments; +const FIELDS_MAPPING = { + 'peak.allocated': 'peakAllocated', + 'total.allocated': 'totalAllocated', + 'startup.allocated': 'startupAllocated', + 'replication.backlog': 'replicationBacklog', + 'clients.slaves': 'clientsReplicas', + 'clients.normal': 'clientsNormal', + 'aof.buffer': 'aofBuffer', + 'lua.caches': 'luaCaches', + 'overhead.total': 'overheadTotal', + 'keys.count': 'keysCount', + 'keys.bytes-per-key': 'keysBytesPerKey', + 'dataset.bytes': 'datasetBytes', + 'dataset.percentage': 'datasetPercentage', + 'peak.percentage': 'peakPercentage', + 'allocator.allocated': 'allocatorAllocated', + 'allocator.active': 'allocatorActive', + 'allocator.resident': 'allocatorResident', + 'allocator-fragmentation.ratio': 'allocatorFragmentationRatio', + 'allocator-fragmentation.bytes': 'allocatorFragmentationBytes', + 'allocator-rss.ratio': 'allocatorRssRatio', + 'allocator-rss.bytes': 'allocatorRssBytes', + 'rss-overhead.ratio': 'rssOverheadRatio', + 'rss-overhead.bytes': 'rssOverheadBytes', + 'fragmentation': 'fragmentation', + 'fragmentation.bytes': 'fragmentationBytes' +}, DB_FIELDS_MAPPING = { + 'overhead.hashtable.main': 'overheadHashtableMain', + 'overhead.hashtable.expires': 'overheadHashtableExpires' +}; +function transformReply(rawReply) { + const reply = { + db: {} + }; + for (let i = 0; i < rawReply.length; i += 2) { + const key = rawReply[i]; + if (key.startsWith('db.')) { + const dbTuples = rawReply[i + 1], db = {}; + for (let j = 0; j < dbTuples.length; j += 2) { + db[DB_FIELDS_MAPPING[dbTuples[j]]] = dbTuples[j + 1]; + } + reply.db[key.substring(3)] = db; + continue; + } + reply[FIELDS_MAPPING[key]] = Number(rawReply[i + 1]); + } + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 8844: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + const args = ['MEMORY', 'USAGE', key]; + if (options?.SAMPLES) { + args.push('SAMPLES', options.SAMPLES.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 63894: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return ['MGET', ...keys]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 11757: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(host, port, key, destinationDb, timeout, options) { + const args = ['MIGRATE', host, port.toString()], isKeyArray = Array.isArray(key); + if (isKeyArray) { + args.push(''); + } + else { + args.push(key); + } + args.push(destinationDb.toString(), timeout.toString()); + if (options?.COPY) { + args.push('COPY'); + } + if (options?.REPLACE) { + args.push('REPLACE'); + } + if (options?.AUTH) { + if (options.AUTH.username) { + args.push('AUTH2', options.AUTH.username, options.AUTH.password); + } + else { + args.push('AUTH', options.AUTH.password); + } + } + if (isKeyArray) { + args.push('KEYS', ...key); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 45518: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['MODULE', 'LIST']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 8892: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(path, moduleArgs) { + const args = ['MODULE', 'LOAD', path]; + if (moduleArgs) { + args.push(...moduleArgs); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99877: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(name) { + return ['MODULE', 'UNLOAD', name]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 27075: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, db) { + return ['MOVE', key, db.toString()]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 30840: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(toSet) { + const args = ['MSET']; + if (Array.isArray(toSet)) { + args.push(...toSet.flat()); + } + else { + for (const key of Object.keys(toSet)) { + args.push(key, toSet[key]); + } + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 95583: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(toSet) { + const args = ['MSETNX']; + if (Array.isArray(toSet)) { + args.push(...toSet.flat()); + } + else { + for (const key of Object.keys(toSet)) { + args.push(key, toSet[key]); + } + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 9908: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'ENCODING', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 85673: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'FREQ', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 49996: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'IDLETIME', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 56707: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['OBJECT', 'REFCOUNT', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 6173: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['PERSIST', key]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 47868: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, milliseconds, mode) { + const args = ['PEXPIRE', key, milliseconds.toString()]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 97050: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, millisecondsTimestamp, mode) { + const args = [ + 'PEXPIREAT', + key, + (0, generic_transformers_1.transformPXAT)(millisecondsTimestamp) + ]; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } })); + + +/***/ }), + +/***/ 5881: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['PEXPIRETIME', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 51915: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['PFADD', key], element); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformBooleanReply; } })); + + +/***/ }), + +/***/ 22695: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['PFCOUNT'], key); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 36387: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, source) { + return (0, generic_transformers_1.pushVerdictArguments)(['PFMERGE', destination], source); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 52714: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(message) { + const args = ['PING']; + if (message) { + args.push(message); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 81414: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, milliseconds, value) { + return [ + 'PSETEX', + key, + milliseconds.toString(), + value + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 1378: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['PTTL', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 5857: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(channel, message) { + return ['PUBLISH', channel, message]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 40904: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(pattern) { + const args = ['PUBSUB', 'CHANNELS']; + if (pattern) { + args.push(pattern); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 13696: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['PUBSUB', 'NUMPAT']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 30541: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.IS_READ_ONLY = true; +function transformArguments(channels) { + const args = ['PUBSUB', 'NUMSUB']; + if (channels) + return (0, generic_transformers_1.pushVerdictArguments)(args, channels); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const transformedReply = Object.create(null); + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply[rawReply[i]] = rawReply[i + 1]; + } + return transformedReply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 35115: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(pattern) { + const args = ['PUBSUB', 'SHARDCHANNELS']; + if (pattern) + args.push(pattern); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 81066: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['RANDOMKEY']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 81370: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['READONLY']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74306: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['READWRITE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 58707: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, newKey) { + return ['RENAME', key, newKey]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 25262: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, newKey) { + return ['RENAMENX', key, newKey]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 46413: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(host, port) { + return ['REPLICAOF', host, port.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 68186: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['RESTORE-ASKING']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99814: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['ROLE']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + switch (reply[0]) { + case 'master': + return { + role: 'master', + replicationOffest: reply[1], + replicas: reply[2].map(([ip, port, replicationOffest]) => ({ + ip, + port: Number(port), + replicationOffest: Number(replicationOffest) + })) + }; + case 'slave': + return { + role: 'slave', + master: { + ip: reply[1], + port: reply[2] + }, + state: reply[3], + dataReceived: reply[4] + }; + case 'sentinel': + return { + role: 'sentinel', + masterNames: reply[1] + }; + } +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 52179: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['RPOP', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 49777: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination) { + return ['RPOPLPUSH', source, destination]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 51089: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count) { + return ['RPOP', key, count.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 7579: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['RPUSH', key], element); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 25779: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, element) { + return (0, generic_transformers_1.pushVerdictArguments)(['RPUSHX', key], element); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 94939: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members) { + return (0, generic_transformers_1.pushVerdictArguments)(['SADD', key], members); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 73198: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['SAVE']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12332: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.IS_READ_ONLY = true; +function transformArguments(cursor, options) { + const args = (0, generic_transformers_1.pushScanArguments)(['SCAN'], cursor, options); + if (options?.TYPE) { + args.push('TYPE', options.TYPE); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply([cursor, keys]) { + return { + cursor: Number(cursor), + keys + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 90988: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['SCARD', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 44846: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode) { + return ['SCRIPT', 'DEBUG', mode]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 83449: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(sha1) { + return (0, generic_transformers_1.pushVerdictArguments)(['SCRIPT', 'EXISTS'], sha1); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 68184: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['SCRIPT', 'FLUSH']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 32145: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['SCRIPT', 'KILL']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 96495: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(script) { + return ['SCRIPT', 'LOAD', script]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 63288: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SDIFF'], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 40278: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SDIFFSTORE', destination], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 32353: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value, options) { + const args = [ + 'SET', + key, + typeof value === 'number' ? value.toString() : value + ]; + if (options?.EX !== undefined) { + args.push('EX', options.EX.toString()); + } + else if (options?.PX !== undefined) { + args.push('PX', options.PX.toString()); + } + else if (options?.EXAT !== undefined) { + args.push('EXAT', options.EXAT.toString()); + } + else if (options?.PXAT !== undefined) { + args.push('PXAT', options.PXAT.toString()); + } + else if (options?.KEEPTTL) { + args.push('KEEPTTL'); + } + if (options?.NX) { + args.push('NX'); + } + else if (options?.XX) { + args.push('XX'); + } + if (options?.GET) { + args.push('GET'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 35385: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, offset, value) { + return ['SETBIT', key, offset.toString(), value.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 52761: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, seconds, value) { + return [ + 'SETEX', + key, + seconds.toString(), + value + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 66131: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value) { + return ['SETNX', key, value]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 13418: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, offset, value) { + return ['SETRANGE', key, offset.toString(), value]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 71960: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(mode) { + const args = ['SHUTDOWN']; + if (mode) { + args.push(mode); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 47099: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SINTER'], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 60029: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, limit) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['SINTERCARD'], keys); + if (limit) { + args.push('LIMIT', limit.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 60543: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SINTERSTORE', destination], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 71855: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, member) { + return ['SISMEMBER', key, member]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 32299: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['SMEMBERS', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 41609: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members) { + return ['SMISMEMBER', key, ...members]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanArrayReply; } })); + + +/***/ }), + +/***/ 40807: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, member) { + return ['SMOVE', source, destination, member]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 3451: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + return (0, generic_transformers_1.pushSortArguments)(['SORT', key], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 90795: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + return (0, generic_transformers_1.pushSortArguments)(['SORT_RO', key], options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 71421: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const SORT_1 = __nccwpck_require__(3451); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(source, destination, options) { + const args = (0, SORT_1.transformArguments)(source, options); + args.push('STORE', destination); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, count) { + const args = ['SPOP', key]; + if (typeof count === 'number') { + args.push(count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 76985: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(channel, message) { + return ['SPUBLISH', channel, message]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 87650: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['SRANDMEMBER', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 85672: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const SRANDMEMBER_1 = __nccwpck_require__(87650); +var SRANDMEMBER_2 = __nccwpck_require__(87650); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return SRANDMEMBER_2.FIRST_KEY_INDEX; } })); +function transformArguments(key, count) { + return [ + ...(0, SRANDMEMBER_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 10981: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members) { + return (0, generic_transformers_1.pushVerdictArguments)(['SREM', key], members); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 75448: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, cursor, options) { + return (0, generic_transformers_1.pushScanArguments)([ + 'SSCAN', + key, + ], cursor, options); +} +exports.transformArguments = transformArguments; +function transformReply([cursor, members]) { + return { + cursor: Number(cursor), + members + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 17770: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['STRLEN', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 54482: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SUNION'], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 2769: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArguments)(['SUNIONSTORE', destination], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 51870: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(index1, index2) { + return ['SWAPDB', index1.toString(), index2.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 89997: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments() { + return ['TIME']; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + const seconds = Number(reply[0]), microseconds = Number(reply[1]), d = new Date(seconds * 1000 + microseconds / 1000); + d.microseconds = microseconds; + return d; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 10896: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['TOUCH'], key); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 33037: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TTL', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 31471: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TYPE', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 17099: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['UNLINK'], key); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 18524: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['UNWATCH']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 79043: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(numberOfReplicas, timeout) { + return ['WAIT', numberOfReplicas.toString(), timeout.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 19601: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return (0, generic_transformers_1.pushVerdictArguments)(['WATCH'], key); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 20927: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, group, id) { + return (0, generic_transformers_1.pushVerdictArguments)(['XACK', key, group], id); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 88023: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, id, message, options) { + const args = ['XADD', key]; + if (options?.NOMKSTREAM) { + args.push('NOMKSTREAM'); + } + if (options?.TRIM) { + if (options.TRIM.strategy) { + args.push(options.TRIM.strategy); + } + if (options.TRIM.strategyModifier) { + args.push(options.TRIM.strategyModifier); + } + args.push(options.TRIM.threshold.toString()); + if (options.TRIM.limit) { + args.push('LIMIT', options.TRIM.limit.toString()); + } + } + args.push(id); + for (const [key, value] of Object.entries(message)) { + args.push(key, value); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 90886: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, group, consumer, minIdleTime, start, options) { + const args = ['XAUTOCLAIM', key, group, consumer, minIdleTime.toString(), start]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + nextId: reply[0], + messages: (0, generic_transformers_1.transformStreamMessagesReply)(reply[1]) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 79094: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const XAUTOCLAIM_1 = __nccwpck_require__(90886); +var XAUTOCLAIM_2 = __nccwpck_require__(90886); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return XAUTOCLAIM_2.FIRST_KEY_INDEX; } })); +function transformArguments(...args) { + return [ + ...(0, XAUTOCLAIM_1.transformArguments)(...args), + 'JUSTID' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + nextId: reply[0], + messages: reply[1] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 47144: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, group, consumer, minIdleTime, id, options) { + const args = (0, generic_transformers_1.pushVerdictArguments)(['XCLAIM', key, group, consumer, minIdleTime.toString()], id); + if (options?.IDLE) { + args.push('IDLE', options.IDLE.toString()); + } + if (options?.TIME) { + args.push('TIME', (typeof options.TIME === 'number' ? options.TIME : options.TIME.getTime()).toString()); + } + if (options?.RETRYCOUNT) { + args.push('RETRYCOUNT', options.RETRYCOUNT.toString()); + } + if (options?.FORCE) { + args.push('FORCE'); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformStreamMessagesReply; } })); + + +/***/ }), + +/***/ 26149: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const XCLAIM_1 = __nccwpck_require__(47144); +var XCLAIM_2 = __nccwpck_require__(47144); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return XCLAIM_2.FIRST_KEY_INDEX; } })); +function transformArguments(...args) { + return [ + ...(0, XCLAIM_1.transformArguments)(...args), + 'JUSTID' + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 84371: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, id) { + return (0, generic_transformers_1.pushVerdictArguments)(['XDEL', key], id); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 18484: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, id, options) { + const args = ['XGROUP', 'CREATE', key, group, id]; + if (options?.MKSTREAM) { + args.push('MKSTREAM'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 50061: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, consumer) { + return ['XGROUP', 'CREATECONSUMER', key, group, consumer]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 56573: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, consumer) { + return ['XGROUP', 'DELCONSUMER', key, group, consumer]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 542: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group) { + return ['XGROUP', 'DESTROY', key, group]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 83733: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, group, id) { + return ['XGROUP', 'SETID', key, group, id]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 80250: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key, group) { + return ['XINFO', 'CONSUMERS', key, group]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + return rawReply.map(consumer => ({ + name: consumer[1], + pending: consumer[3], + idle: consumer[5] + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 40504: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['XINFO', 'GROUPS', key]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + return rawReply.map(group => ({ + name: group[1], + consumers: group[3], + pending: group[5], + lastDeliveredId: group[7] + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 26528: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['XINFO', 'STREAM', key]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const parsedReply = {}; + for (let i = 0; i < rawReply.length; i += 2) { + switch (rawReply[i]) { + case 'length': + parsedReply.length = rawReply[i + 1]; + break; + case 'radix-tree-keys': + parsedReply.radixTreeKeys = rawReply[i + 1]; + break; + case 'radix-tree-nodes': + parsedReply.radixTreeNodes = rawReply[i + 1]; + break; + case 'groups': + parsedReply.groups = rawReply[i + 1]; + break; + case 'last-generated-id': + parsedReply.lastGeneratedId = rawReply[i + 1]; + break; + case 'first-entry': + parsedReply.firstEntry = rawReply[i + 1] ? { + id: rawReply[i + 1][0], + message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1]) + } : null; + break; + case 'last-entry': + parsedReply.lastEntry = rawReply[i + 1] ? { + id: rawReply[i + 1][0], + message: (0, generic_transformers_1.transformTuplesReply)(rawReply[i + 1][1]) + } : null; + break; + } + } + return parsedReply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 21090: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['XLEN', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 73477: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, group) { + return ['XPENDING', key, group]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + pending: reply[0], + firstId: reply[1], + lastId: reply[2], + consumers: reply[3] === null ? null : reply[3].map(([name, deliveriesCounter]) => ({ + name, + deliveriesCounter: Number(deliveriesCounter) + })) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 40942: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, group, start, end, count, options) { + const args = ['XPENDING', key, group]; + if (options?.IDLE) { + args.push('IDLE', options.IDLE.toString()); + } + args.push(start, end, count.toString()); + if (options?.consumer) { + args.push(options.consumer); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(([id, owner, millisecondsSinceLastDelivery, deliveriesCounter]) => ({ + id, + owner, + millisecondsSinceLastDelivery, + deliveriesCounter + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 93436: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, end, options) { + const args = ['XRANGE', key, start, end]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformStreamMessagesReply; } })); + + +/***/ }), + +/***/ 38189: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const FIRST_KEY_INDEX = (streams) => { + return Array.isArray(streams) ? streams[0].key : streams.key; +}; +exports.FIRST_KEY_INDEX = FIRST_KEY_INDEX; +exports.IS_READ_ONLY = true; +function transformArguments(streams, options) { + const args = ['XREAD']; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + if (typeof options?.BLOCK === 'number') { + args.push('BLOCK', options.BLOCK.toString()); + } + args.push('STREAMS'); + const streamsArray = Array.isArray(streams) ? streams : [streams], argsLength = args.length; + for (let i = 0; i < streamsArray.length; i++) { + const stream = streamsArray[i]; + args[argsLength + i] = stream.key; + args[argsLength + streamsArray.length + i] = stream.id; + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformStreamsMessagesReply; } })); + + +/***/ }), + +/***/ 17478: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const FIRST_KEY_INDEX = (_group, _consumer, streams) => { + return Array.isArray(streams) ? streams[0].key : streams.key; +}; +exports.FIRST_KEY_INDEX = FIRST_KEY_INDEX; +exports.IS_READ_ONLY = true; +function transformArguments(group, consumer, streams, options) { + const args = ['XREADGROUP', 'GROUP', group, consumer]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + if (typeof options?.BLOCK === 'number') { + args.push('BLOCK', options.BLOCK.toString()); + } + if (options?.NOACK) { + args.push('NOACK'); + } + args.push('STREAMS'); + const streamsArray = Array.isArray(streams) ? streams : [streams], argsLength = args.length; + for (let i = 0; i < streamsArray.length; i++) { + const stream = streamsArray[i]; + args[argsLength + i] = stream.key; + args[argsLength + streamsArray.length + i] = stream.id; + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformStreamsMessagesReply; } })); + + +/***/ }), + +/***/ 52660: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, start, end, options) { + const args = ['XREVRANGE', key, start, end]; + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformStreamMessagesReply; } })); + + +/***/ }), + +/***/ 59785: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, lastId, options) { + const args = ['XSETID', key, lastId]; + if (options?.ENTRIESADDED) { + args.push('ENTRIESADDED', options.ENTRIESADDED.toString()); + } + if (options?.MAXDELETEDID) { + args.push('MAXDELETEDID', options.MAXDELETEDID); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 78666: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, strategy, threshold, options) { + const args = ['XTRIM', key, strategy]; + if (options?.strategyModifier) { + args.push(options.strategyModifier); + } + args.push(threshold.toString()); + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 84647: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, members, options) { + const args = ['ZADD', key]; + if (options?.NX) { + args.push('NX'); + } + else { + if (options?.XX) { + args.push('XX'); + } + if (options?.GT) { + args.push('GT'); + } + else if (options?.LT) { + args.push('LT'); + } + } + if (options?.CH) { + args.push('CH'); + } + if (options?.INCR) { + args.push('INCR'); + } + for (const { score, value } of (Array.isArray(members) ? members : [members])) { + args.push((0, generic_transformers_1.transformNumberInfinityArgument)(score), value); + } + return args; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityReply; } })); + + +/***/ }), + +/***/ 84343: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['ZCARD', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 93617: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max) { + return [ + 'ZCOUNT', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 24394: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys) { + return (0, generic_transformers_1.pushVerdictArgument)(['ZDIFF'], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 37980: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys) { + return (0, generic_transformers_1.pushVerdictArgument)(['ZDIFFSTORE', destination], keys); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 26916: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZDIFF_1 = __nccwpck_require__(24394); +var ZDIFF_2 = __nccwpck_require__(24394); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZDIFF_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZDIFF_2.IS_READ_ONLY; } })); +function transformArguments(...args) { + return [ + ...(0, ZDIFF_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 38999: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, increment, member) { + return [ + 'ZINCRBY', + key, + (0, generic_transformers_1.transformNumberInfinityArgument)(increment), + member + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityReply; } })); + + +/***/ }), + +/***/ 36673: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTER'], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 77437: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, limit) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTERCARD'], keys); + if (limit) { + args.push('LIMIT', limit.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 40105: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZINTERSTORE', destination], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99290: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZINTER_1 = __nccwpck_require__(36673); +var ZINTER_2 = __nccwpck_require__(36673); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZINTER_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZINTER_2.IS_READ_ONLY; } })); +function transformArguments(...args) { + return [ + ...(0, ZINTER_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 29899: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max) { + return [ + 'ZLEXCOUNT', + key, + min, + max + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 90536: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +function transformArguments(keys, side, options) { + return (0, generic_transformers_1.transformZMPopArguments)(['ZMPOP'], keys, side, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply === null ? null : { + key: reply[0], + elements: reply[1].map(generic_transformers_1.transformSortedSetMemberReply) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 25296: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['ZMSCORE', key], member); +} +exports.transformArguments = transformArguments; +var generic_transformers_2 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_2.transformNumberInfinityNullArrayReply; } })); + + +/***/ }), + +/***/ 7170: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return [ + 'ZPOPMAX', + key + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetMemberNullReply; } })); + + +/***/ }), + +/***/ 49264: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const ZPOPMAX_1 = __nccwpck_require__(7170); +var ZPOPMAX_2 = __nccwpck_require__(7170); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZPOPMAX_2.FIRST_KEY_INDEX; } })); +function transformArguments(key, count) { + return [ + ...(0, ZPOPMAX_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 38000: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return [ + 'ZPOPMIN', + key + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetMemberNullReply; } })); + + +/***/ }), + +/***/ 54732: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const ZPOPMIN_1 = __nccwpck_require__(38000); +var ZPOPMIN_2 = __nccwpck_require__(38000); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZPOPMIN_2.FIRST_KEY_INDEX; } })); +function transformArguments(key, count) { + return [ + ...(0, ZPOPMIN_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 32875: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['ZRANDMEMBER', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 23237: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANDMEMBER_1 = __nccwpck_require__(32875); +var ZRANDMEMBER_2 = __nccwpck_require__(32875); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZRANDMEMBER_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZRANDMEMBER_2.IS_READ_ONLY; } })); +function transformArguments(key, count) { + return [ + ...(0, ZRANDMEMBER_1.transformArguments)(key), + count.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 49250: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANDMEMBER_COUNT_1 = __nccwpck_require__(23237); +var ZRANDMEMBER_COUNT_2 = __nccwpck_require__(23237); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZRANDMEMBER_COUNT_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZRANDMEMBER_COUNT_2.IS_READ_ONLY; } })); +function transformArguments(...args) { + return [ + ...(0, ZRANDMEMBER_COUNT_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 13140: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max, options) { + const args = [ + 'ZRANGE', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + switch (options?.BY) { + case 'SCORE': + args.push('BYSCORE'); + break; + case 'LEX': + args.push('BYLEX'); + break; + } + if (options?.REV) { + args.push('REV'); + } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 35424: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max, options) { + const args = [ + 'ZRANGEBYLEX', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 35342: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, min, max, options) { + const args = [ + 'ZRANGEBYSCORE', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 55748: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANGEBYSCORE_1 = __nccwpck_require__(35342); +var ZRANGEBYSCORE_2 = __nccwpck_require__(35342); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZRANGEBYSCORE_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZRANGEBYSCORE_2.IS_READ_ONLY; } })); +function transformArguments(key, min, max, options) { + return [ + ...(0, ZRANGEBYSCORE_1.transformArguments)(key, min, max, options), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 70118: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(dst, src, min, max, options) { + const args = [ + 'ZRANGESTORE', + dst, + src, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; + switch (options?.BY) { + case 'SCORE': + args.push('BYSCORE'); + break; + case 'LEX': + args.push('BYLEX'); + break; + } + if (options?.REV) { + args.push('REV'); + } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + if (options?.WITHSCORES) { + args.push('WITHSCORES'); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (typeof reply !== 'number') { + throw new TypeError(`Upgrade to Redis 6.2.5 and up (https://github.com/redis/redis/pull/9089)`); + } + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 65: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZRANGE_1 = __nccwpck_require__(13140); +var ZRANGE_2 = __nccwpck_require__(13140); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZRANGE_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZRANGE_2.IS_READ_ONLY; } })); +function transformArguments(...args) { + return [ + ...(0, ZRANGE_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 99980: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return ['ZRANK', key, member]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 35175: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, member) { + return (0, generic_transformers_1.pushVerdictArguments)(['ZREM', key], member); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 69981: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, min, max) { + return [ + 'ZREMRANGEBYLEX', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 44069: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, start, stop) { + return ['ZREMRANGEBYRANK', key, start.toString(), stop.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 94856: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, min, max) { + return [ + 'ZREMRANGEBYSCORE', + key, + (0, generic_transformers_1.transformStringNumberInfinityArgument)(min), + (0, generic_transformers_1.transformStringNumberInfinityArgument)(max) + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 23398: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return ['ZREVRANK', key, member]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 21080: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, cursor, options) { + return (0, generic_transformers_1.pushScanArguments)([ + 'ZSCAN', + key + ], cursor, options); +} +exports.transformArguments = transformArguments; +function transformReply([cursor, rawMembers]) { + const parsedMembers = []; + for (let i = 0; i < rawMembers.length; i += 2) { + parsedMembers.push({ + value: rawMembers[i], + score: (0, generic_transformers_1.transformNumberInfinityReply)(rawMembers[i + 1]) + }); + } + return { + cursor: Number(cursor), + members: parsedMembers + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 83410: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, member) { + return ['ZSCORE', key, member]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformNumberInfinityNullReply; } })); + + +/***/ }), + +/***/ 2103: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 2; +exports.IS_READ_ONLY = true; +function transformArguments(keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZUNION'], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 55081: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(destination, keys, options) { + const args = (0, generic_transformers_1.pushVerdictArgument)(['ZUNIONSTORE', destination], keys); + if (options?.WEIGHTS) { + args.push('WEIGHTS', ...options.WEIGHTS.map(weight => weight.toString())); + } + if (options?.AGGREGATE) { + args.push('AGGREGATE', options.AGGREGATE); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 98001: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const ZUNION_1 = __nccwpck_require__(2103); +var ZUNION_2 = __nccwpck_require__(2103); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return ZUNION_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return ZUNION_2.IS_READ_ONLY; } })); +function transformArguments(...args) { + return [ + ...(0, ZUNION_1.transformArguments)(...args), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformSortedSetWithScoresReply; } })); + + +/***/ }), + +/***/ 31204: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformRangeReply = exports.pushSlotRangesArguments = exports.pushSortArguments = exports.transformFunctionListItemReply = exports.RedisFunctionFlags = exports.transformCommandReply = exports.CommandCategories = exports.CommandFlags = exports.pushOptionalVerdictArgument = exports.pushVerdictArgument = exports.pushVerdictNumberArguments = exports.pushVerdictArguments = exports.pushEvalArguments = exports.evalFirstKeyIndex = exports.transformPXAT = exports.transformEXAT = exports.transformGeoMembersWithReply = exports.GeoReplyWith = exports.pushGeoRadiusStoreArguments = exports.pushGeoRadiusArguments = exports.pushGeoSearchArguments = exports.pushGeoCountArgument = exports.transformLMPopArguments = exports.transformZMPopArguments = exports.transformSortedSetWithScoresReply = exports.transformSortedSetMemberReply = exports.transformSortedSetMemberNullReply = exports.transformStreamsMessagesReply = exports.transformStreamMessagesReply = exports.transformTuplesReply = exports.transformStringNumberInfinityArgument = exports.transformNumberInfinityArgument = exports.transformNumberInfinityNullArrayReply = exports.transformNumberInfinityNullReply = exports.transformNumberInfinityReply = exports.pushScanArguments = exports.transformBooleanArrayReply = exports.transformBooleanReply = void 0; +function transformBooleanReply(reply) { + return reply === 1; +} +exports.transformBooleanReply = transformBooleanReply; +function transformBooleanArrayReply(reply) { + return reply.map(transformBooleanReply); +} +exports.transformBooleanArrayReply = transformBooleanArrayReply; +function pushScanArguments(args, cursor, options) { + args.push(cursor.toString()); + if (options?.MATCH) { + args.push('MATCH', options.MATCH); + } + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.pushScanArguments = pushScanArguments; +function transformNumberInfinityReply(reply) { + switch (reply.toString()) { + case '+inf': + return Infinity; + case '-inf': + return -Infinity; + default: + return Number(reply); + } +} +exports.transformNumberInfinityReply = transformNumberInfinityReply; +function transformNumberInfinityNullReply(reply) { + if (reply === null) + return null; + return transformNumberInfinityReply(reply); +} +exports.transformNumberInfinityNullReply = transformNumberInfinityNullReply; +function transformNumberInfinityNullArrayReply(reply) { + return reply.map(transformNumberInfinityNullReply); +} +exports.transformNumberInfinityNullArrayReply = transformNumberInfinityNullArrayReply; +function transformNumberInfinityArgument(num) { + switch (num) { + case Infinity: + return '+inf'; + case -Infinity: + return '-inf'; + default: + return num.toString(); + } +} +exports.transformNumberInfinityArgument = transformNumberInfinityArgument; +function transformStringNumberInfinityArgument(num) { + if (typeof num !== 'number') + return num; + return transformNumberInfinityArgument(num); +} +exports.transformStringNumberInfinityArgument = transformStringNumberInfinityArgument; +function transformTuplesReply(reply) { + const message = Object.create(null); + for (let i = 0; i < reply.length; i += 2) { + message[reply[i].toString()] = reply[i + 1]; + } + return message; +} +exports.transformTuplesReply = transformTuplesReply; +function transformStreamMessagesReply(reply) { + const messages = []; + for (const [id, message] of reply) { + messages.push({ + id, + message: transformTuplesReply(message) + }); + } + return messages; +} +exports.transformStreamMessagesReply = transformStreamMessagesReply; +function transformStreamsMessagesReply(reply) { + if (reply === null) + return null; + return reply.map(([name, rawMessages]) => ({ + name, + messages: transformStreamMessagesReply(rawMessages) + })); +} +exports.transformStreamsMessagesReply = transformStreamsMessagesReply; +function transformSortedSetMemberNullReply(reply) { + if (!reply.length) + return null; + return transformSortedSetMemberReply(reply); +} +exports.transformSortedSetMemberNullReply = transformSortedSetMemberNullReply; +function transformSortedSetMemberReply(reply) { + return { + value: reply[0], + score: transformNumberInfinityReply(reply[1]) + }; +} +exports.transformSortedSetMemberReply = transformSortedSetMemberReply; +function transformSortedSetWithScoresReply(reply) { + const members = []; + for (let i = 0; i < reply.length; i += 2) { + members.push({ + value: reply[i], + score: transformNumberInfinityReply(reply[i + 1]) + }); + } + return members; +} +exports.transformSortedSetWithScoresReply = transformSortedSetWithScoresReply; +function transformZMPopArguments(args, keys, side, options) { + pushVerdictArgument(args, keys); + args.push(side); + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformZMPopArguments = transformZMPopArguments; +function transformLMPopArguments(args, keys, side, options) { + pushVerdictArgument(args, keys); + args.push(side); + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformLMPopArguments = transformLMPopArguments; +function pushGeoCountArgument(args, count) { + if (typeof count === 'number') { + args.push('COUNT', count.toString()); + } + else if (count) { + args.push('COUNT', count.value.toString()); + if (count.ANY) { + args.push('ANY'); + } + } + return args; +} +exports.pushGeoCountArgument = pushGeoCountArgument; +function pushGeoSearchArguments(args, key, from, by, options) { + args.push(key); + if (typeof from === 'string') { + args.push('FROMMEMBER', from); + } + else { + args.push('FROMLONLAT', from.longitude.toString(), from.latitude.toString()); + } + if ('radius' in by) { + args.push('BYRADIUS', by.radius.toString()); + } + else { + args.push('BYBOX', by.width.toString(), by.height.toString()); + } + args.push(by.unit); + if (options?.SORT) { + args.push(options.SORT); + } + pushGeoCountArgument(args, options?.COUNT); + return args; +} +exports.pushGeoSearchArguments = pushGeoSearchArguments; +function pushGeoRadiusArguments(args, key, from, radius, unit, options) { + args.push(key); + if (typeof from === 'string') { + args.push(from); + } + else { + args.push(from.longitude.toString(), from.latitude.toString()); + } + args.push(radius.toString(), unit); + if (options?.SORT) { + args.push(options.SORT); + } + pushGeoCountArgument(args, options?.COUNT); + return args; +} +exports.pushGeoRadiusArguments = pushGeoRadiusArguments; +function pushGeoRadiusStoreArguments(args, key, from, radius, unit, destination, options) { + pushGeoRadiusArguments(args, key, from, radius, unit, options); + if (options?.STOREDIST) { + args.push('STOREDIST', destination); + } + else { + args.push('STORE', destination); + } + return args; +} +exports.pushGeoRadiusStoreArguments = pushGeoRadiusStoreArguments; +var GeoReplyWith; +(function (GeoReplyWith) { + GeoReplyWith["DISTANCE"] = "WITHDIST"; + GeoReplyWith["HASH"] = "WITHHASH"; + GeoReplyWith["COORDINATES"] = "WITHCOORD"; +})(GeoReplyWith = exports.GeoReplyWith || (exports.GeoReplyWith = {})); +function transformGeoMembersWithReply(reply, replyWith) { + const replyWithSet = new Set(replyWith); + let index = 0; + const distanceIndex = replyWithSet.has(GeoReplyWith.DISTANCE) && ++index, hashIndex = replyWithSet.has(GeoReplyWith.HASH) && ++index, coordinatesIndex = replyWithSet.has(GeoReplyWith.COORDINATES) && ++index; + return reply.map(member => { + const transformedMember = { + member: member[0] + }; + if (distanceIndex) { + transformedMember.distance = member[distanceIndex]; + } + if (hashIndex) { + transformedMember.hash = member[hashIndex]; + } + if (coordinatesIndex) { + const [longitude, latitude] = member[coordinatesIndex]; + transformedMember.coordinates = { + longitude, + latitude + }; + } + return transformedMember; + }); +} +exports.transformGeoMembersWithReply = transformGeoMembersWithReply; +function transformEXAT(EXAT) { + return (typeof EXAT === 'number' ? EXAT : Math.floor(EXAT.getTime() / 1000)).toString(); +} +exports.transformEXAT = transformEXAT; +function transformPXAT(PXAT) { + return (typeof PXAT === 'number' ? PXAT : PXAT.getTime()).toString(); +} +exports.transformPXAT = transformPXAT; +function evalFirstKeyIndex(options) { + return options?.keys?.[0]; +} +exports.evalFirstKeyIndex = evalFirstKeyIndex; +function pushEvalArguments(args, options) { + if (options?.keys) { + args.push(options.keys.length.toString(), ...options.keys); + } + else { + args.push('0'); + } + if (options?.arguments) { + args.push(...options.arguments); + } + return args; +} +exports.pushEvalArguments = pushEvalArguments; +function pushVerdictArguments(args, value) { + if (Array.isArray(value)) { + // https://github.com/redis/node-redis/pull/2160 + args = args.concat(value); + } + else { + args.push(value); + } + return args; +} +exports.pushVerdictArguments = pushVerdictArguments; +function pushVerdictNumberArguments(args, value) { + if (Array.isArray(value)) { + for (const item of value) { + args.push(item.toString()); + } + } + else { + args.push(value.toString()); + } + return args; +} +exports.pushVerdictNumberArguments = pushVerdictNumberArguments; +function pushVerdictArgument(args, value) { + if (Array.isArray(value)) { + args.push(value.length.toString(), ...value); + } + else { + args.push('1', value); + } + return args; +} +exports.pushVerdictArgument = pushVerdictArgument; +function pushOptionalVerdictArgument(args, name, value) { + if (value === undefined) + return args; + args.push(name); + return pushVerdictArgument(args, value); +} +exports.pushOptionalVerdictArgument = pushOptionalVerdictArgument; +var CommandFlags; +(function (CommandFlags) { + CommandFlags["WRITE"] = "write"; + CommandFlags["READONLY"] = "readonly"; + CommandFlags["DENYOOM"] = "denyoom"; + CommandFlags["ADMIN"] = "admin"; + CommandFlags["PUBSUB"] = "pubsub"; + CommandFlags["NOSCRIPT"] = "noscript"; + CommandFlags["RANDOM"] = "random"; + CommandFlags["SORT_FOR_SCRIPT"] = "sort_for_script"; + CommandFlags["LOADING"] = "loading"; + CommandFlags["STALE"] = "stale"; + CommandFlags["SKIP_MONITOR"] = "skip_monitor"; + CommandFlags["ASKING"] = "asking"; + CommandFlags["FAST"] = "fast"; + CommandFlags["MOVABLEKEYS"] = "movablekeys"; // keys have no pre-determined position. You must discover keys yourself. +})(CommandFlags = exports.CommandFlags || (exports.CommandFlags = {})); +var CommandCategories; +(function (CommandCategories) { + CommandCategories["KEYSPACE"] = "@keyspace"; + CommandCategories["READ"] = "@read"; + CommandCategories["WRITE"] = "@write"; + CommandCategories["SET"] = "@set"; + CommandCategories["SORTEDSET"] = "@sortedset"; + CommandCategories["LIST"] = "@list"; + CommandCategories["HASH"] = "@hash"; + CommandCategories["STRING"] = "@string"; + CommandCategories["BITMAP"] = "@bitmap"; + CommandCategories["HYPERLOGLOG"] = "@hyperloglog"; + CommandCategories["GEO"] = "@geo"; + CommandCategories["STREAM"] = "@stream"; + CommandCategories["PUBSUB"] = "@pubsub"; + CommandCategories["ADMIN"] = "@admin"; + CommandCategories["FAST"] = "@fast"; + CommandCategories["SLOW"] = "@slow"; + CommandCategories["BLOCKING"] = "@blocking"; + CommandCategories["DANGEROUS"] = "@dangerous"; + CommandCategories["CONNECTION"] = "@connection"; + CommandCategories["TRANSACTION"] = "@transaction"; + CommandCategories["SCRIPTING"] = "@scripting"; +})(CommandCategories = exports.CommandCategories || (exports.CommandCategories = {})); +function transformCommandReply([name, arity, flags, firstKeyIndex, lastKeyIndex, step, categories]) { + return { + name, + arity, + flags: new Set(flags), + firstKeyIndex, + lastKeyIndex, + step, + categories: new Set(categories) + }; +} +exports.transformCommandReply = transformCommandReply; +var RedisFunctionFlags; +(function (RedisFunctionFlags) { + RedisFunctionFlags["NO_WRITES"] = "no-writes"; + RedisFunctionFlags["ALLOW_OOM"] = "allow-oom"; + RedisFunctionFlags["ALLOW_STALE"] = "allow-stale"; + RedisFunctionFlags["NO_CLUSTER"] = "no-cluster"; +})(RedisFunctionFlags = exports.RedisFunctionFlags || (exports.RedisFunctionFlags = {})); +function transformFunctionListItemReply(reply) { + return { + libraryName: reply[1], + engine: reply[3], + functions: reply[5].map(fn => ({ + name: fn[1], + description: fn[3], + flags: fn[5] + })) + }; +} +exports.transformFunctionListItemReply = transformFunctionListItemReply; +function pushSortArguments(args, options) { + if (options?.BY) { + args.push('BY', options.BY); + } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.offset.toString(), options.LIMIT.count.toString()); + } + if (options?.GET) { + for (const pattern of (typeof options.GET === 'string' ? [options.GET] : options.GET)) { + args.push('GET', pattern); + } + } + if (options?.DIRECTION) { + args.push(options.DIRECTION); + } + if (options?.ALPHA) { + args.push('ALPHA'); + } + return args; +} +exports.pushSortArguments = pushSortArguments; +function pushSlotRangeArguments(args, range) { + args.push(range.start.toString(), range.end.toString()); +} +function pushSlotRangesArguments(args, ranges) { + if (Array.isArray(ranges)) { + for (const range of ranges) { + pushSlotRangeArguments(args, range); + } + } + else { + pushSlotRangeArguments(args, ranges); + } + return args; +} +exports.pushSlotRangesArguments = pushSlotRangesArguments; +function transformRangeReply([start, end]) { + return { + start, + end + }; +} +exports.transformRangeReply = transformRangeReply; + + +/***/ }), + +/***/ 92711: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ErrorReply = exports.ReconnectStrategyError = exports.RootNodesUnavailableError = exports.SocketClosedUnexpectedlyError = exports.DisconnectsClientError = exports.ClientOfflineError = exports.ClientClosedError = exports.ConnectionTimeoutError = exports.WatchError = exports.AbortError = void 0; +class AbortError extends Error { + constructor() { + super('The command was aborted'); + } +} +exports.AbortError = AbortError; +class WatchError extends Error { + constructor() { + super('One (or more) of the watched keys has been changed'); + } +} +exports.WatchError = WatchError; +class ConnectionTimeoutError extends Error { + constructor() { + super('Connection timeout'); + } +} +exports.ConnectionTimeoutError = ConnectionTimeoutError; +class ClientClosedError extends Error { + constructor() { + super('The client is closed'); + } +} +exports.ClientClosedError = ClientClosedError; +class ClientOfflineError extends Error { + constructor() { + super('The client is offline'); + } +} +exports.ClientOfflineError = ClientOfflineError; +class DisconnectsClientError extends Error { + constructor() { + super('Disconnects client'); + } +} +exports.DisconnectsClientError = DisconnectsClientError; +class SocketClosedUnexpectedlyError extends Error { + constructor() { + super('Socket closed unexpectedly'); + } +} +exports.SocketClosedUnexpectedlyError = SocketClosedUnexpectedlyError; +class RootNodesUnavailableError extends Error { + constructor() { + super('All the root nodes are unavailable'); + } +} +exports.RootNodesUnavailableError = RootNodesUnavailableError; +class ReconnectStrategyError extends Error { + constructor(originalError, socketError) { + super(originalError.message); + Object.defineProperty(this, "originalError", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + Object.defineProperty(this, "socketError", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.originalError = originalError; + this.socketError = socketError; + } +} +exports.ReconnectStrategyError = ReconnectStrategyError; +class ErrorReply extends Error { + constructor(message) { + super(message); + this.stack = undefined; + } +} +exports.ErrorReply = ErrorReply; + + +/***/ }), + +/***/ 72945: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.scriptSha1 = exports.defineScript = void 0; +const crypto_1 = __nccwpck_require__(6113); +function defineScript(script) { + return { + ...script, + SHA1: scriptSha1(script.SCRIPT) + }; +} +exports.defineScript = defineScript; +function scriptSha1(script) { + return (0, crypto_1.createHash)('sha1').update(script).digest('hex'); +} +exports.scriptSha1 = scriptSha1; + + +/***/ }), + +/***/ 31755: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const commander_1 = __nccwpck_require__(45602); +const errors_1 = __nccwpck_require__(92711); +class RedisMultiCommand { + constructor() { + Object.defineProperty(this, "queue", { + enumerable: true, + configurable: true, + writable: true, + value: [] + }); + Object.defineProperty(this, "scriptsInUse", { + enumerable: true, + configurable: true, + writable: true, + value: new Set() + }); + } + static generateChainId() { + return Symbol('RedisMultiCommand Chain Id'); + } + addCommand(args, transformReply) { + this.queue.push({ + args, + transformReply + }); + } + addFunction(name, fn, args) { + const transformedArguments = (0, commander_1.fCallArguments)(name, fn, fn.transformArguments(...args)); + this.queue.push({ + args: transformedArguments, + transformReply: fn.transformReply + }); + return transformedArguments; + } + addScript(script, args) { + const transformedArguments = []; + if (this.scriptsInUse.has(script.SHA1)) { + transformedArguments.push('EVALSHA', script.SHA1); + } + else { + this.scriptsInUse.add(script.SHA1); + transformedArguments.push('EVAL', script.SCRIPT); + } + if (script.NUMBER_OF_KEYS !== undefined) { + transformedArguments.push(script.NUMBER_OF_KEYS.toString()); + } + const scriptArguments = script.transformArguments(...args); + transformedArguments.push(...scriptArguments); + if (scriptArguments.preserve) { + transformedArguments.preserve = scriptArguments.preserve; + } + this.addCommand(transformedArguments, script.transformReply); + return transformedArguments; + } + handleExecReplies(rawReplies) { + const execReply = rawReplies[rawReplies.length - 1]; + if (execReply === null) { + throw new errors_1.WatchError(); + } + return this.transformReplies(execReply); + } + transformReplies(rawReplies) { + return rawReplies.map((reply, i) => { + const { transformReply, args } = this.queue[i]; + return transformReply ? transformReply(reply, args.preserve) : reply; + }); + } +} +exports["default"] = RedisMultiCommand; + + +/***/ }), + +/***/ 71103: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.promiseTimeout = void 0; +function promiseTimeout(ms) { + return new Promise(resolve => setTimeout(resolve, ms)); +} +exports.promiseTimeout = promiseTimeout; + + +/***/ }), + +/***/ 13584: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(configKey) { + return ['GRAPH.CONFIG', 'GET', configKey]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99925: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(configKey, value) { + return [ + 'GRAPH.CONFIG', + 'SET', + configKey, + value.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 99772: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['GRAPH.DELETE', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 25733: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, query) { + return ['GRAPH.EXPLAIN', key, query]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 62003: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments() { + return ['GRAPH.LIST']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 51185: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, query) { + return ['GRAPH.PROFILE', key, query]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74635: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(27909); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(graph, query, options, compact) { + return (0, _1.pushQueryArguments)(['GRAPH.QUERY'], graph, query, options, compact); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.length === 1 ? { + headers: undefined, + data: undefined, + metadata: reply[0] + } : { + headers: reply[0], + data: reply[1], + metadata: reply[2] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 13367: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(27909); +var QUERY_1 = __nccwpck_require__(74635); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return QUERY_1.FIRST_KEY_INDEX; } })); +exports.IS_READ_ONLY = true; +function transformArguments(graph, query, options, compact) { + return (0, _1.pushQueryArguments)(['GRAPH.RO_QUERY'], graph, query, options, compact); +} +exports.transformArguments = transformArguments; +var QUERY_2 = __nccwpck_require__(74635); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return QUERY_2.transformReply; } })); + + +/***/ }), + +/***/ 29339: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key) { + return ['GRAPH.SLOWLOG', key]; +} +exports.transformArguments = transformArguments; +function transformReply(logs) { + return logs.map(([timestamp, command, query, took]) => ({ + timestamp: new Date(Number(timestamp) * 1000), + command, + query, + took: Number(took) + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 27909: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.pushQueryArguments = void 0; +const CONFIG_GET = __nccwpck_require__(13584); +const CONFIG_SET = __nccwpck_require__(99925); +; +const DELETE = __nccwpck_require__(99772); +const EXPLAIN = __nccwpck_require__(25733); +const LIST = __nccwpck_require__(62003); +const PROFILE = __nccwpck_require__(51185); +const QUERY = __nccwpck_require__(74635); +const RO_QUERY = __nccwpck_require__(13367); +const SLOWLOG = __nccwpck_require__(29339); +exports["default"] = { + CONFIG_GET, + configGet: CONFIG_GET, + CONFIG_SET, + configSet: CONFIG_SET, + DELETE, + delete: DELETE, + EXPLAIN, + explain: EXPLAIN, + LIST, + list: LIST, + PROFILE, + profile: PROFILE, + QUERY, + query: QUERY, + RO_QUERY, + roQuery: RO_QUERY, + SLOWLOG, + slowLog: SLOWLOG +}; +function pushQueryArguments(args, graph, query, options, compact) { + args.push(graph); + if (typeof options === 'number') { + args.push(query); + pushTimeout(args, options); + } + else { + args.push(options?.params ? + `CYPHER ${queryParamsToString(options.params)} ${query}` : + query); + if (options?.TIMEOUT !== undefined) { + pushTimeout(args, options.TIMEOUT); + } + } + if (compact) { + args.push('--compact'); + } + return args; +} +exports.pushQueryArguments = pushQueryArguments; +function pushTimeout(args, timeout) { + args.push('TIMEOUT', timeout.toString()); +} +function queryParamsToString(params) { + const parts = []; + for (const [key, value] of Object.entries(params)) { + parts.push(`${key}=${queryParamToString(value)}`); + } + return parts.join(' '); +} +function queryParamToString(param) { + if (param === null) { + return 'null'; + } + switch (typeof param) { + case 'string': + return `"${param.replace(/["\\]/g, '\\$&')}"`; + case 'number': + case 'boolean': + return param.toString(); + } + if (Array.isArray(param)) { + return `[${param.map(queryParamToString).join(',')}]`; + } + else if (typeof param === 'object') { + const body = []; + for (const [key, value] of Object.entries(param)) { + body.push(`${key}:${queryParamToString(value)}`); + } + return `{${body.join(',')}}`; + } + else { + throw new TypeError(`Unexpected param type ${typeof param} ${param}`); + } +} + + +/***/ }), + +/***/ 72718: +/***/ (function(__unused_webpack_module, exports) { + +"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 _Graph_instances, _Graph_client, _Graph_name, _Graph_metadata, _Graph_setMetadataPromise, _Graph_updateMetadata, _Graph_setMetadata, _Graph_cleanMetadataArray, _Graph_getMetadata, _Graph_getMetadataAsync, _Graph_parseReply, _Graph_parseValue, _Graph_parseEdge, _Graph_parseNode, _Graph_parseProperties; +Object.defineProperty(exports, "__esModule", ({ value: true })); +// https://github.com/RedisGraph/RedisGraph/blob/master/src/resultset/formatters/resultset_formatter.h#L20 +var GraphValueTypes; +(function (GraphValueTypes) { + GraphValueTypes[GraphValueTypes["UNKNOWN"] = 0] = "UNKNOWN"; + GraphValueTypes[GraphValueTypes["NULL"] = 1] = "NULL"; + GraphValueTypes[GraphValueTypes["STRING"] = 2] = "STRING"; + GraphValueTypes[GraphValueTypes["INTEGER"] = 3] = "INTEGER"; + GraphValueTypes[GraphValueTypes["BOOLEAN"] = 4] = "BOOLEAN"; + GraphValueTypes[GraphValueTypes["DOUBLE"] = 5] = "DOUBLE"; + GraphValueTypes[GraphValueTypes["ARRAY"] = 6] = "ARRAY"; + GraphValueTypes[GraphValueTypes["EDGE"] = 7] = "EDGE"; + GraphValueTypes[GraphValueTypes["NODE"] = 8] = "NODE"; + GraphValueTypes[GraphValueTypes["PATH"] = 9] = "PATH"; + GraphValueTypes[GraphValueTypes["MAP"] = 10] = "MAP"; + GraphValueTypes[GraphValueTypes["POINT"] = 11] = "POINT"; +})(GraphValueTypes || (GraphValueTypes = {})); +class Graph { + constructor(client, name) { + _Graph_instances.add(this); + _Graph_client.set(this, void 0); + _Graph_name.set(this, void 0); + _Graph_metadata.set(this, void 0); + _Graph_setMetadataPromise.set(this, void 0); + __classPrivateFieldSet(this, _Graph_client, client, "f"); + __classPrivateFieldSet(this, _Graph_name, name, "f"); + } + async query(query, options) { + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseReply).call(this, await __classPrivateFieldGet(this, _Graph_client, "f").graph.query(__classPrivateFieldGet(this, _Graph_name, "f"), query, options, true)); + } + async roQuery(query, options) { + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseReply).call(this, await __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), query, options, true)); + } +} +exports["default"] = Graph; +_Graph_client = new WeakMap(), _Graph_name = new WeakMap(), _Graph_metadata = new WeakMap(), _Graph_setMetadataPromise = new WeakMap(), _Graph_instances = new WeakSet(), _Graph_updateMetadata = function _Graph_updateMetadata() { + __classPrivateFieldSet(this, _Graph_setMetadataPromise, __classPrivateFieldGet(this, _Graph_setMetadataPromise, "f") ?? __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_setMetadata).call(this) + .finally(() => __classPrivateFieldSet(this, _Graph_setMetadataPromise, undefined, "f")), "f"); + return __classPrivateFieldGet(this, _Graph_setMetadataPromise, "f"); +}, _Graph_setMetadata = +// DO NOT use directly, use #updateMetadata instead +async function _Graph_setMetadata() { + const [labels, relationshipTypes, propertyKeys] = await Promise.all([ + __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), 'CALL db.labels()'), + __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), 'CALL db.relationshipTypes()'), + __classPrivateFieldGet(this, _Graph_client, "f").graph.roQuery(__classPrivateFieldGet(this, _Graph_name, "f"), 'CALL db.propertyKeys()') + ]); + __classPrivateFieldSet(this, _Graph_metadata, { + labels: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_cleanMetadataArray).call(this, labels.data), + relationshipTypes: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_cleanMetadataArray).call(this, relationshipTypes.data), + propertyKeys: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_cleanMetadataArray).call(this, propertyKeys.data) + }, "f"); + return __classPrivateFieldGet(this, _Graph_metadata, "f"); +}, _Graph_cleanMetadataArray = function _Graph_cleanMetadataArray(arr) { + return arr.map(([value]) => value); +}, _Graph_getMetadata = function _Graph_getMetadata(key, id) { + return __classPrivateFieldGet(this, _Graph_metadata, "f")?.[key][id] ?? __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadataAsync).call(this, key, id); +}, _Graph_getMetadataAsync = +// DO NOT use directly, use #getMetadata instead +async function _Graph_getMetadataAsync(key, id) { + const value = (await __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_updateMetadata).call(this))[key][id]; + if (value === undefined) + throw new Error(`Cannot find value from ${key}[${id}]`); + return value; +}, _Graph_parseReply = async function _Graph_parseReply(reply) { + if (!reply.data) + return reply; + const promises = [], parsed = { + metadata: reply.metadata, + data: reply.data.map((row) => { + const data = {}; + for (let i = 0; i < row.length; i++) { + data[reply.headers[i][1]] = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, row[i], promises); + } + return data; + }) + }; + if (promises.length) + await Promise.all(promises); + return parsed; +}, _Graph_parseValue = function _Graph_parseValue([valueType, value], promises) { + switch (valueType) { + case GraphValueTypes.NULL: + return null; + case GraphValueTypes.STRING: + case GraphValueTypes.INTEGER: + return value; + case GraphValueTypes.BOOLEAN: + return value === 'true'; + case GraphValueTypes.DOUBLE: + return parseFloat(value); + case GraphValueTypes.ARRAY: + return value.map(x => __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, x, promises)); + case GraphValueTypes.EDGE: + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseEdge).call(this, value, promises); + case GraphValueTypes.NODE: + return __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseNode).call(this, value, promises); + case GraphValueTypes.PATH: + return { + nodes: value[0][1].map(([, node]) => __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseNode).call(this, node, promises)), + edges: value[1][1].map(([, edge]) => __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseEdge).call(this, edge, promises)) + }; + case GraphValueTypes.MAP: + const map = {}; + for (let i = 0; i < value.length; i++) { + map[value[i++]] = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, value[i], promises); + } + return map; + case GraphValueTypes.POINT: + return { + latitude: parseFloat(value[0]), + longitude: parseFloat(value[1]) + }; + default: + throw new Error(`unknown scalar type: ${valueType}`); + } +}, _Graph_parseEdge = function _Graph_parseEdge([id, relationshipTypeId, sourceId, destinationId, properties], promises) { + const edge = { + id, + sourceId, + destinationId, + properties: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseProperties).call(this, properties, promises) + }; + const relationshipType = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadata).call(this, 'relationshipTypes', relationshipTypeId); + if (relationshipType instanceof Promise) { + promises.push(relationshipType.then(value => edge.relationshipType = value)); + } + else { + edge.relationshipType = relationshipType; + } + return edge; +}, _Graph_parseNode = function _Graph_parseNode([id, labelIds, properties], promises) { + const labels = new Array(labelIds.length); + for (let i = 0; i < labelIds.length; i++) { + const value = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadata).call(this, 'labels', labelIds[i]); + if (value instanceof Promise) { + promises.push(value.then(value => labels[i] = value)); + } + else { + labels[i] = value; + } + } + return { + id, + labels, + properties: __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseProperties).call(this, properties, promises) + }; +}, _Graph_parseProperties = function _Graph_parseProperties(raw, promises) { + const parsed = {}; + for (const [id, type, value] of raw) { + const parsedValue = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_parseValue).call(this, [type, value], promises), key = __classPrivateFieldGet(this, _Graph_instances, "m", _Graph_getMetadata).call(this, 'propertyKeys', id); + if (key instanceof Promise) { + promises.push(key.then(key => parsed[key] = parsedValue)); + } + else { + parsed[key] = parsedValue; + } + } + return parsed; +}; + + +/***/ }), + +/***/ 92971: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Graph = exports["default"] = void 0; +var commands_1 = __nccwpck_require__(27909); +Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return commands_1.default; } })); +var graph_1 = __nccwpck_require__(72718); +Object.defineProperty(exports, "Graph", ({ enumerable: true, get: function () { return graph_1.default; } })); + + +/***/ }), + +/***/ 29637: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, ...jsons) { + const args = ['JSON.ARRAPPEND', key, path]; + for (const json of jsons) { + args.push((0, _1.transformRedisJsonArgument)(json)); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 5189: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, path, json, start, stop) { + const args = ['JSON.ARRINDEX', key, path, (0, _1.transformRedisJsonArgument)(json)]; + if (start !== undefined && start !== null) { + args.push(start.toString()); + if (stop !== undefined && stop !== null) { + args.push(stop.toString()); + } + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 36963: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, index, ...jsons) { + const args = ['JSON.ARRINSERT', key, path, index.toString()]; + for (const json of jsons) { + args.push((0, _1.transformRedisJsonArgument)(json)); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 12705: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, path) { + const args = ['JSON.ARRLEN', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 87118: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, index) { + const args = ['JSON.ARRPOP', key]; + if (path) { + args.push(path); + if (index !== undefined && index !== null) { + args.push(index.toString()); + } + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (reply === null) + return null; + if (Array.isArray(reply)) { + return reply.map(_1.transformRedisJsonNullReply); + } + return (0, _1.transformRedisJsonNullReply)(reply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 86815: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, start, stop) { + return ['JSON.ARRTRIM', key, path, start.toString(), stop.toString()]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 88607: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 2; +function transformArguments(key, path) { + const args = ['JSON.DEBUG', 'MEMORY', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 10737: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.DEL', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 6212: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.FORGET', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 52314: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + let args = ['JSON.GET', key]; + if (options?.path) { + args = (0, generic_transformers_1.pushVerdictArguments)(args, options.path); + } + if (options?.INDENT) { + args.push('INDENT', options.INDENT); + } + if (options?.NEWLINE) { + args.push('NEWLINE', options.NEWLINE); + } + if (options?.SPACE) { + args.push('SPACE', options.SPACE); + } + if (options?.NOESCAPE) { + args.push('NOESCAPE'); + } + return args; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(82034); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformRedisJsonNullReply; } })); + + +/***/ }), + +/***/ 15117: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(keys, path) { + return [ + 'JSON.MGET', + ...keys, + path + ]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(_1.transformRedisJsonNullReply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 69785: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, by) { + return ['JSON.NUMINCRBY', key, path, by.toString()]; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(82034); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformNumbersReply; } })); + + +/***/ }), + +/***/ 49661: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, by) { + return ['JSON.NUMMULTBY', key, path, by.toString()]; +} +exports.transformArguments = transformArguments; +var _1 = __nccwpck_require__(82034); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _1.transformNumbersReply; } })); + + +/***/ }), + +/***/ 59562: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.OBJKEYS', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 66503: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.OBJLEN', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 42533: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.RESP', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 98607: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path, json, options) { + const args = ['JSON.SET', key, path, (0, _1.transformRedisJsonArgument)(json)]; + if (options?.NX) { + args.push('NX'); + } + else if (options?.XX) { + args.push('XX'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 49030: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(82034); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(...[key, pathOrAppend, append]) { + const args = ['JSON.STRAPPEND', key]; + if (append !== undefined && append !== null) { + args.push(pathOrAppend, (0, _1.transformRedisJsonArgument)(append)); + } + else { + args.push((0, _1.transformRedisJsonArgument)(pathOrAppend)); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 3340: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, path) { + const args = ['JSON.STRLEN', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 57848: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, path) { + const args = ['JSON.TYPE', key]; + if (path) { + args.push(path); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 82034: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformNumbersReply = exports.transformRedisJsonNullReply = exports.transformRedisJsonReply = exports.transformRedisJsonArgument = void 0; +const ARRAPPEND = __nccwpck_require__(29637); +const ARRINDEX = __nccwpck_require__(5189); +const ARRINSERT = __nccwpck_require__(36963); +const ARRLEN = __nccwpck_require__(12705); +const ARRPOP = __nccwpck_require__(87118); +const ARRTRIM = __nccwpck_require__(86815); +const DEBUG_MEMORY = __nccwpck_require__(88607); +const DEL = __nccwpck_require__(10737); +const FORGET = __nccwpck_require__(6212); +const GET = __nccwpck_require__(52314); +const MGET = __nccwpck_require__(15117); +const NUMINCRBY = __nccwpck_require__(69785); +const NUMMULTBY = __nccwpck_require__(49661); +const OBJKEYS = __nccwpck_require__(59562); +const OBJLEN = __nccwpck_require__(66503); +const RESP = __nccwpck_require__(42533); +const SET = __nccwpck_require__(98607); +const STRAPPEND = __nccwpck_require__(49030); +const STRLEN = __nccwpck_require__(3340); +const TYPE = __nccwpck_require__(57848); +exports["default"] = { + ARRAPPEND, + arrAppend: ARRAPPEND, + ARRINDEX, + arrIndex: ARRINDEX, + ARRINSERT, + arrInsert: ARRINSERT, + ARRLEN, + arrLen: ARRLEN, + ARRPOP, + arrPop: ARRPOP, + ARRTRIM, + arrTrim: ARRTRIM, + DEBUG_MEMORY, + debugMemory: DEBUG_MEMORY, + DEL, + del: DEL, + FORGET, + forget: FORGET, + GET, + get: GET, + MGET, + mGet: MGET, + NUMINCRBY, + numIncrBy: NUMINCRBY, + NUMMULTBY, + numMultBy: NUMMULTBY, + OBJKEYS, + objKeys: OBJKEYS, + OBJLEN, + objLen: OBJLEN, + RESP, + resp: RESP, + SET, + set: SET, + STRAPPEND, + strAppend: STRAPPEND, + STRLEN, + strLen: STRLEN, + TYPE, + type: TYPE +}; +function transformRedisJsonArgument(json) { + return JSON.stringify(json); +} +exports.transformRedisJsonArgument = transformRedisJsonArgument; +function transformRedisJsonReply(json) { + return JSON.parse(json); +} +exports.transformRedisJsonReply = transformRedisJsonReply; +function transformRedisJsonNullReply(json) { + if (json === null) + return null; + return transformRedisJsonReply(json); +} +exports.transformRedisJsonNullReply = transformRedisJsonNullReply; +function transformNumbersReply(reply) { + return JSON.parse(reply); +} +exports.transformNumbersReply = transformNumbersReply; + + +/***/ }), + +/***/ 27798: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = void 0; +var commands_1 = __nccwpck_require__(82034); +Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return commands_1.default; } })); + + +/***/ }), + +/***/ 8992: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.pushAggregatehOptions = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = exports.AggregateGroupByReducers = exports.AggregateSteps = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +const _1 = __nccwpck_require__(57583); +var AggregateSteps; +(function (AggregateSteps) { + AggregateSteps["GROUPBY"] = "GROUPBY"; + AggregateSteps["SORTBY"] = "SORTBY"; + AggregateSteps["APPLY"] = "APPLY"; + AggregateSteps["LIMIT"] = "LIMIT"; + AggregateSteps["FILTER"] = "FILTER"; +})(AggregateSteps = exports.AggregateSteps || (exports.AggregateSteps = {})); +var AggregateGroupByReducers; +(function (AggregateGroupByReducers) { + AggregateGroupByReducers["COUNT"] = "COUNT"; + AggregateGroupByReducers["COUNT_DISTINCT"] = "COUNT_DISTINCT"; + AggregateGroupByReducers["COUNT_DISTINCTISH"] = "COUNT_DISTINCTISH"; + AggregateGroupByReducers["SUM"] = "SUM"; + AggregateGroupByReducers["MIN"] = "MIN"; + AggregateGroupByReducers["MAX"] = "MAX"; + AggregateGroupByReducers["AVG"] = "AVG"; + AggregateGroupByReducers["STDDEV"] = "STDDEV"; + AggregateGroupByReducers["QUANTILE"] = "QUANTILE"; + AggregateGroupByReducers["TOLIST"] = "TOLIST"; + AggregateGroupByReducers["TO_LIST"] = "TOLIST"; + AggregateGroupByReducers["FIRST_VALUE"] = "FIRST_VALUE"; + AggregateGroupByReducers["RANDOM_SAMPLE"] = "RANDOM_SAMPLE"; +})(AggregateGroupByReducers = exports.AggregateGroupByReducers || (exports.AggregateGroupByReducers = {})); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + return pushAggregatehOptions(['FT.AGGREGATE', index, query], options); +} +exports.transformArguments = transformArguments; +function pushAggregatehOptions(args, options) { + if (options?.VERBATIM) { + args.push('VERBATIM'); + } + if (options?.LOAD) { + args.push('LOAD'); + (0, _1.pushArgumentsWithLength)(args, () => { + if (Array.isArray(options.LOAD)) { + for (const load of options.LOAD) { + pushLoadField(args, load); + } + } + else { + pushLoadField(args, options.LOAD); + } + }); + } + if (options?.STEPS) { + for (const step of options.STEPS) { + switch (step.type) { + case AggregateSteps.GROUPBY: + args.push('GROUPBY'); + if (!step.properties) { + args.push('0'); + } + else { + (0, generic_transformers_1.pushVerdictArgument)(args, step.properties); + } + if (Array.isArray(step.REDUCE)) { + for (const reducer of step.REDUCE) { + pushGroupByReducer(args, reducer); + } + } + else { + pushGroupByReducer(args, step.REDUCE); + } + break; + case AggregateSteps.SORTBY: + (0, _1.pushSortByArguments)(args, 'SORTBY', step.BY); + if (step.MAX) { + args.push('MAX', step.MAX.toString()); + } + break; + case AggregateSteps.APPLY: + args.push('APPLY', step.expression, 'AS', step.AS); + break; + case AggregateSteps.LIMIT: + args.push('LIMIT', step.from.toString(), step.size.toString()); + break; + case AggregateSteps.FILTER: + args.push('FILTER', step.expression); + break; + } + } + } + (0, _1.pushParamsArgs)(args, options?.PARAMS); + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + return args; +} +exports.pushAggregatehOptions = pushAggregatehOptions; +function pushLoadField(args, toLoad) { + if (typeof toLoad === 'string') { + args.push(toLoad); + } + else { + args.push(toLoad.identifier); + if (toLoad.AS) { + args.push('AS', toLoad.AS); + } + } +} +function pushGroupByReducer(args, reducer) { + args.push('REDUCE', reducer.type); + switch (reducer.type) { + case AggregateGroupByReducers.COUNT: + args.push('0'); + break; + case AggregateGroupByReducers.COUNT_DISTINCT: + case AggregateGroupByReducers.COUNT_DISTINCTISH: + case AggregateGroupByReducers.SUM: + case AggregateGroupByReducers.MIN: + case AggregateGroupByReducers.MAX: + case AggregateGroupByReducers.AVG: + case AggregateGroupByReducers.STDDEV: + case AggregateGroupByReducers.TOLIST: + args.push('1', reducer.property); + break; + case AggregateGroupByReducers.QUANTILE: + args.push('2', reducer.property, reducer.quantile.toString()); + break; + case AggregateGroupByReducers.FIRST_VALUE: { + (0, _1.pushArgumentsWithLength)(args, () => { + args.push(reducer.property); + if (reducer.BY) { + args.push('BY'); + if (typeof reducer.BY === 'string') { + args.push(reducer.BY); + } + else { + args.push(reducer.BY.property); + if (reducer.BY.direction) { + args.push(reducer.BY.direction); + } + } + } + }); + break; + } + case AggregateGroupByReducers.RANDOM_SAMPLE: + args.push('2', reducer.property, reducer.sampleSize.toString()); + break; + } + if (reducer.AS) { + args.push('AS', reducer.AS); + } +} +function transformReply(rawReply) { + const results = []; + for (let i = 1; i < rawReply.length; i++) { + results.push((0, generic_transformers_1.transformTuplesReply)(rawReply[i])); + } + return { + total: rawReply[0], + results + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 12341: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const AGGREGATE_1 = __nccwpck_require__(8992); +var AGGREGATE_2 = __nccwpck_require__(8992); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return AGGREGATE_2.FIRST_KEY_INDEX; } })); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return AGGREGATE_2.IS_READ_ONLY; } })); +function transformArguments(index, query, options) { + const args = (0, AGGREGATE_1.transformArguments)(index, query, options); + args.push('WITHCURSOR'); + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + ...(0, AGGREGATE_1.transformReply)(reply[0]), + cursor: reply[1] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 74615: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(name, index) { + return ['FT.ALIASADD', name, index]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 53219: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(name, index) { + return ['FT.ALIASDEL', name, index]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 8175: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(name, index) { + return ['FT.ALIASUPDATE', name, index]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 85725: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const _1 = __nccwpck_require__(57583); +function transformArguments(index, schema) { + const args = ['FT.ALTER', index, 'SCHEMA', 'ADD']; + (0, _1.pushSchema)(args, schema); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 55265: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(option) { + return ['FT.CONFIG', 'GET', option]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const transformedReply = Object.create(null); + for (const [key, value] of rawReply) { + transformedReply[key] = value; + } + return transformedReply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 57543: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(option, value) { + return ['FT.CONFIG', 'SET', option, value]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 79687: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +const _1 = __nccwpck_require__(57583); +function transformArguments(index, schema, options) { + const args = ['FT.CREATE', index]; + if (options?.ON) { + args.push('ON', options.ON); + } + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'PREFIX', options?.PREFIX); + if (options?.FILTER) { + args.push('FILTER', options.FILTER); + } + if (options?.LANGUAGE) { + args.push('LANGUAGE', options.LANGUAGE); + } + if (options?.LANGUAGE_FIELD) { + args.push('LANGUAGE_FIELD', options.LANGUAGE_FIELD); + } + if (options?.SCORE) { + args.push('SCORE', options.SCORE.toString()); + } + if (options?.SCORE_FIELD) { + args.push('SCORE_FIELD', options.SCORE_FIELD); + } + // if (options?.PAYLOAD_FIELD) { + // args.push('PAYLOAD_FIELD', options.PAYLOAD_FIELD); + // } + if (options?.MAXTEXTFIELDS) { + args.push('MAXTEXTFIELDS'); + } + if (options?.TEMPORARY) { + args.push('TEMPORARY', options.TEMPORARY.toString()); + } + if (options?.NOOFFSETS) { + args.push('NOOFFSETS'); + } + if (options?.NOHL) { + args.push('NOHL'); + } + if (options?.NOFIELDS) { + args.push('NOFIELDS'); + } + if (options?.NOFREQS) { + args.push('NOFREQS'); + } + if (options?.SKIPINITIALSCAN) { + args.push('SKIPINITIALSCAN'); + } + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'STOPWORDS', options?.STOPWORDS); + args.push('SCHEMA'); + (0, _1.pushSchema)(args, schema); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 33310: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(index, cursorId) { + return [ + 'FT.CURSOR', + 'DEL', + index, + cursorId.toString() + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 11023: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, cursor) { + return [ + 'FT.CURSOR', + 'READ', + index, + cursor.toString() + ]; +} +exports.transformArguments = transformArguments; +var AGGREGATE_WITHCURSOR_1 = __nccwpck_require__(12341); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return AGGREGATE_WITHCURSOR_1.transformReply; } })); + + +/***/ }), + +/***/ 85951: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(dictionary, term) { + return (0, generic_transformers_1.pushVerdictArguments)(['FT.DICTADD', dictionary], term); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 28973: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(dictionary, term) { + return (0, generic_transformers_1.pushVerdictArguments)(['FT.DICTDEL', dictionary], term); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 48794: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(dictionary) { + return ['FT.DICTDUMP', dictionary]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 31408: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(index, options) { + const args = ['FT.DROPINDEX', index]; + if (options?.DD) { + args.push('DD'); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 37885: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(57583); +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + const args = ['FT.EXPLAIN', index, query]; + (0, _1.pushParamsArgs)(args, options?.PARAMS); + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 31930: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(index, query) { + return ['FT.EXPLAINCLI', index, query]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 6270: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(index) { + return ['FT.INFO', index]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + return { + indexName: rawReply[1], + indexOptions: rawReply[3], + indexDefinition: (0, generic_transformers_1.transformTuplesReply)(rawReply[5]), + attributes: rawReply[7].map(attribute => (0, generic_transformers_1.transformTuplesReply)(attribute)), + numDocs: rawReply[9], + maxDocId: rawReply[11], + numTerms: rawReply[13], + numRecords: rawReply[15], + invertedSzMb: rawReply[17], + vectorIndexSzMb: rawReply[19], + totalInvertedIndexBlocks: rawReply[21], + offsetVectorsSzMb: rawReply[23], + docTableSizeMb: rawReply[25], + sortableValuesSizeMb: rawReply[27], + keyTableSizeMb: rawReply[29], + recordsPerDocAvg: rawReply[31], + bytesPerRecordAvg: rawReply[33], + offsetsPerTermAvg: rawReply[35], + offsetBitsPerRecordAvg: rawReply[37], + hashIndexingFailures: rawReply[39], + indexing: rawReply[41], + percentIndexed: rawReply[43], + gcStats: { + bytesCollected: rawReply[45][1], + totalMsRun: rawReply[45][3], + totalCycles: rawReply[45][5], + averageCycleTimeMs: rawReply[45][7], + lastRunTimeMs: rawReply[45][9], + gcNumericTreesMissed: rawReply[45][11], + gcBlocksDenied: rawReply[45][13] + }, + cursorStats: { + globalIdle: rawReply[47][1], + globalTotal: rawReply[47][3], + indexCapacity: rawReply[47][5], + idnexTotal: rawReply[47][7] + }, + stopWords: rawReply[49] + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 13233: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const AGGREGATE_1 = __nccwpck_require__(8992); +const _1 = __nccwpck_require__(57583); +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + const args = ['FT.PROFILE', index, 'AGGREGATE']; + if (options?.LIMITED) { + args.push('LIMITED'); + } + args.push('QUERY', query); + (0, AGGREGATE_1.pushAggregatehOptions)(args, options); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + results: (0, AGGREGATE_1.transformReply)(reply[0]), + profile: (0, _1.transformProfile)(reply[1]) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 95375: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SEARCH_1 = __nccwpck_require__(92269); +const _1 = __nccwpck_require__(57583); +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + let args = ['FT.PROFILE', index, 'SEARCH']; + if (options?.LIMITED) { + args.push('LIMITED'); + } + args.push('QUERY', query); + return (0, _1.pushSearchOptions)(args, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply, withoutDocuments) { + return { + results: (0, SEARCH_1.transformReply)(reply[0], withoutDocuments), + profile: (0, _1.transformProfile)(reply[1]) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 92269: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(57583); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(index, query, options) { + return (0, _1.pushSearchOptions)(['FT.SEARCH', index, query], options); +} +exports.transformArguments = transformArguments; +function transformReply(reply, withoutDocuments) { + const documents = []; + let i = 1; + while (i < reply.length) { + documents.push({ + id: reply[i++], + value: withoutDocuments ? Object.create(null) : documentValue(reply[i++]) + }); + } + return { + total: reply[0], + documents + }; +} +exports.transformReply = transformReply; +function documentValue(tuples) { + const message = Object.create(null); + let i = 0; + while (i < tuples.length) { + const key = tuples[i++], value = tuples[i++]; + if (key === '$') { // might be a JSON reply + try { + Object.assign(message, JSON.parse(value)); + continue; + } + catch { + // set as a regular property if not a valid JSON + } + } + message[key] = value; + } + return message; +} + + +/***/ }), + +/***/ 31159: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(index, query, options) { + const args = ['FT.SPELLCHECK', index, query]; + if (options?.DISTANCE) { + args.push('DISTANCE', options.DISTANCE.toString()); + } + if (options?.TERMS) { + if (Array.isArray(options.TERMS)) { + for (const term of options.TERMS) { + pushTerms(args, term); + } + } + else { + pushTerms(args, options.TERMS); + } + } + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + return args; +} +exports.transformArguments = transformArguments; +function pushTerms(args, { mode, dictionary }) { + args.push('TERMS', mode, dictionary); +} +function transformReply(rawReply) { + return rawReply.map(([, term, suggestions]) => ({ + term, + suggestions: suggestions.map(([score, suggestion]) => ({ + score: Number(score), + suggestion + })) + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 11082: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(key, string, score, options) { + const args = ['FT.SUGADD', key, string, score.toString()]; + if (options?.INCR) { + args.push('INCR'); + } + if (options?.PAYLOAD) { + args.push('PAYLOAD', options.PAYLOAD); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 6732: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = void 0; +function transformArguments(key, string) { + return ['FT.SUGDEL', key, string]; +} +exports.transformArguments = transformArguments; +var generic_transformers_1 = __nccwpck_require__(31204); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return generic_transformers_1.transformBooleanReply; } })); + + +/***/ }), + +/***/ 84767: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(key, prefix, options) { + const args = ['FT.SUGGET', key, prefix]; + if (options?.FUZZY) { + args.push('FUZZY'); + } + if (options?.MAX) { + args.push('MAX', options.MAX.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 85173: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SUGGET_1 = __nccwpck_require__(84767); +var SUGGET_2 = __nccwpck_require__(84767); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } })); +function transformArguments(key, prefix, options) { + return [ + ...(0, SUGGET_1.transformArguments)(key, prefix, options), + 'WITHPAYLOADS' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + if (rawReply === null) + return null; + const transformedReply = []; + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply.push({ + suggestion: rawReply[i], + payload: rawReply[i + 1] + }); + } + return transformedReply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 55540: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SUGGET_1 = __nccwpck_require__(84767); +var SUGGET_2 = __nccwpck_require__(84767); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } })); +function transformArguments(key, prefix, options) { + return [ + ...(0, SUGGET_1.transformArguments)(key, prefix, options), + 'WITHSCORES' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + if (rawReply === null) + return null; + const transformedReply = []; + for (let i = 0; i < rawReply.length; i += 2) { + transformedReply.push({ + suggestion: rawReply[i], + score: Number(rawReply[i + 1]) + }); + } + return transformedReply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 87476: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const SUGGET_1 = __nccwpck_require__(84767); +var SUGGET_2 = __nccwpck_require__(84767); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return SUGGET_2.IS_READ_ONLY; } })); +function transformArguments(key, prefix, options) { + return [ + ...(0, SUGGET_1.transformArguments)(key, prefix, options), + 'WITHSCORES', + 'WITHPAYLOADS' + ]; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + if (rawReply === null) + return null; + const transformedReply = []; + for (let i = 0; i < rawReply.length; i += 3) { + transformedReply.push({ + suggestion: rawReply[i], + score: Number(rawReply[i + 1]), + payload: rawReply[i + 2] + }); + } + return transformedReply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 74716: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['FT.SUGLEN', key]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 22035: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(index) { + return ['FT.SYNDUMP', index]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 44197: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +function transformArguments(index, groupId, terms, options) { + const args = ['FT.SYNUPDATE', index, groupId]; + if (options?.SKIPINITIALSCAN) { + args.push('SKIPINITIALSCAN'); + } + return (0, generic_transformers_1.pushVerdictArguments)(args, terms); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 57987: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments(index, fieldName) { + return ['FT.TAGVALS', index, fieldName]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 73959: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = void 0; +function transformArguments() { + return ['FT._LIST']; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 57583: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformProfile = exports.pushSearchOptions = exports.pushParamsArgs = exports.pushSchema = exports.VectorAlgorithms = exports.SchemaTextFieldPhonetics = exports.SchemaFieldTypes = exports.pushArgumentsWithLength = exports.pushSortByArguments = exports.pushSortByProperty = exports.RedisSearchLanguages = void 0; +const _LIST = __nccwpck_require__(73959); +const ALTER = __nccwpck_require__(85725); +const AGGREGATE_WITHCURSOR = __nccwpck_require__(12341); +const AGGREGATE = __nccwpck_require__(8992); +const ALIASADD = __nccwpck_require__(74615); +const ALIASDEL = __nccwpck_require__(53219); +const ALIASUPDATE = __nccwpck_require__(8175); +const CONFIG_GET = __nccwpck_require__(55265); +const CONFIG_SET = __nccwpck_require__(57543); +const CREATE = __nccwpck_require__(79687); +const CURSOR_DEL = __nccwpck_require__(33310); +const CURSOR_READ = __nccwpck_require__(11023); +const DICTADD = __nccwpck_require__(85951); +const DICTDEL = __nccwpck_require__(28973); +const DICTDUMP = __nccwpck_require__(48794); +const DROPINDEX = __nccwpck_require__(31408); +const EXPLAIN = __nccwpck_require__(37885); +const EXPLAINCLI = __nccwpck_require__(31930); +const INFO = __nccwpck_require__(6270); +const PROFILESEARCH = __nccwpck_require__(95375); +const PROFILEAGGREGATE = __nccwpck_require__(13233); +const SEARCH = __nccwpck_require__(92269); +const SPELLCHECK = __nccwpck_require__(31159); +const SUGADD = __nccwpck_require__(11082); +const SUGDEL = __nccwpck_require__(6732); +const SUGGET_WITHPAYLOADS = __nccwpck_require__(85173); +const SUGGET_WITHSCORES_WITHPAYLOADS = __nccwpck_require__(87476); +const SUGGET_WITHSCORES = __nccwpck_require__(55540); +const SUGGET = __nccwpck_require__(84767); +const SUGLEN = __nccwpck_require__(74716); +const SYNDUMP = __nccwpck_require__(22035); +const SYNUPDATE = __nccwpck_require__(44197); +const TAGVALS = __nccwpck_require__(57987); +const generic_transformers_1 = __nccwpck_require__(31204); +exports["default"] = { + _LIST, + _list: _LIST, + ALTER, + alter: ALTER, + AGGREGATE_WITHCURSOR, + aggregateWithCursor: AGGREGATE_WITHCURSOR, + AGGREGATE, + aggregate: AGGREGATE, + ALIASADD, + aliasAdd: ALIASADD, + ALIASDEL, + aliasDel: ALIASDEL, + ALIASUPDATE, + aliasUpdate: ALIASUPDATE, + CONFIG_GET, + configGet: CONFIG_GET, + CONFIG_SET, + configSet: CONFIG_SET, + CREATE, + create: CREATE, + CURSOR_DEL, + cursorDel: CURSOR_DEL, + CURSOR_READ, + cursorRead: CURSOR_READ, + DICTADD, + dictAdd: DICTADD, + DICTDEL, + dictDel: DICTDEL, + DICTDUMP, + dictDump: DICTDUMP, + DROPINDEX, + dropIndex: DROPINDEX, + EXPLAIN, + explain: EXPLAIN, + EXPLAINCLI, + explainCli: EXPLAINCLI, + INFO, + info: INFO, + PROFILESEARCH, + profileSearch: PROFILESEARCH, + PROFILEAGGREGATE, + profileAggregate: PROFILEAGGREGATE, + SEARCH, + search: SEARCH, + SPELLCHECK, + spellCheck: SPELLCHECK, + SUGADD, + sugAdd: SUGADD, + SUGDEL, + sugDel: SUGDEL, + SUGGET_WITHPAYLOADS, + sugGetWithPayloads: SUGGET_WITHPAYLOADS, + SUGGET_WITHSCORES_WITHPAYLOADS, + sugGetWithScoresWithPayloads: SUGGET_WITHSCORES_WITHPAYLOADS, + SUGGET_WITHSCORES, + sugGetWithScores: SUGGET_WITHSCORES, + SUGGET, + sugGet: SUGGET, + SUGLEN, + sugLen: SUGLEN, + SYNDUMP, + synDump: SYNDUMP, + SYNUPDATE, + synUpdate: SYNUPDATE, + TAGVALS, + tagVals: TAGVALS +}; +var RedisSearchLanguages; +(function (RedisSearchLanguages) { + RedisSearchLanguages["ARABIC"] = "Arabic"; + RedisSearchLanguages["BASQUE"] = "Basque"; + RedisSearchLanguages["CATALANA"] = "Catalan"; + RedisSearchLanguages["DANISH"] = "Danish"; + RedisSearchLanguages["DUTCH"] = "Dutch"; + RedisSearchLanguages["ENGLISH"] = "English"; + RedisSearchLanguages["FINNISH"] = "Finnish"; + RedisSearchLanguages["FRENCH"] = "French"; + RedisSearchLanguages["GERMAN"] = "German"; + RedisSearchLanguages["GREEK"] = "Greek"; + RedisSearchLanguages["HUNGARIAN"] = "Hungarian"; + RedisSearchLanguages["INDONESAIN"] = "Indonesian"; + RedisSearchLanguages["IRISH"] = "Irish"; + RedisSearchLanguages["ITALIAN"] = "Italian"; + RedisSearchLanguages["LITHUANIAN"] = "Lithuanian"; + RedisSearchLanguages["NEPALI"] = "Nepali"; + RedisSearchLanguages["NORWEIGAN"] = "Norwegian"; + RedisSearchLanguages["PORTUGUESE"] = "Portuguese"; + RedisSearchLanguages["ROMANIAN"] = "Romanian"; + RedisSearchLanguages["RUSSIAN"] = "Russian"; + RedisSearchLanguages["SPANISH"] = "Spanish"; + RedisSearchLanguages["SWEDISH"] = "Swedish"; + RedisSearchLanguages["TAMIL"] = "Tamil"; + RedisSearchLanguages["TURKISH"] = "Turkish"; + RedisSearchLanguages["CHINESE"] = "Chinese"; +})(RedisSearchLanguages = exports.RedisSearchLanguages || (exports.RedisSearchLanguages = {})); +function pushSortByProperty(args, sortBy) { + if (typeof sortBy === 'string') { + args.push(sortBy); + } + else { + args.push(sortBy.BY); + if (sortBy.DIRECTION) { + args.push(sortBy.DIRECTION); + } + } +} +exports.pushSortByProperty = pushSortByProperty; +function pushSortByArguments(args, name, sortBy) { + const lengthBefore = args.push(name, '' // will be overwritten + ); + if (Array.isArray(sortBy)) { + for (const field of sortBy) { + pushSortByProperty(args, field); + } + } + else { + pushSortByProperty(args, sortBy); + } + args[lengthBefore - 1] = (args.length - lengthBefore).toString(); + return args; +} +exports.pushSortByArguments = pushSortByArguments; +function pushArgumentsWithLength(args, fn) { + const lengthIndex = args.push('') - 1; + fn(args); + args[lengthIndex] = (args.length - lengthIndex - 1).toString(); + return args; +} +exports.pushArgumentsWithLength = pushArgumentsWithLength; +var SchemaFieldTypes; +(function (SchemaFieldTypes) { + SchemaFieldTypes["TEXT"] = "TEXT"; + SchemaFieldTypes["NUMERIC"] = "NUMERIC"; + SchemaFieldTypes["GEO"] = "GEO"; + SchemaFieldTypes["TAG"] = "TAG"; + SchemaFieldTypes["VECTOR"] = "VECTOR"; +})(SchemaFieldTypes = exports.SchemaFieldTypes || (exports.SchemaFieldTypes = {})); +var SchemaTextFieldPhonetics; +(function (SchemaTextFieldPhonetics) { + SchemaTextFieldPhonetics["DM_EN"] = "dm:en"; + SchemaTextFieldPhonetics["DM_FR"] = "dm:fr"; + SchemaTextFieldPhonetics["FM_PT"] = "dm:pt"; + SchemaTextFieldPhonetics["DM_ES"] = "dm:es"; +})(SchemaTextFieldPhonetics = exports.SchemaTextFieldPhonetics || (exports.SchemaTextFieldPhonetics = {})); +var VectorAlgorithms; +(function (VectorAlgorithms) { + VectorAlgorithms["FLAT"] = "FLAT"; + VectorAlgorithms["HNSW"] = "HNSW"; +})(VectorAlgorithms = exports.VectorAlgorithms || (exports.VectorAlgorithms = {})); +function pushSchema(args, schema) { + for (const [field, fieldOptions] of Object.entries(schema)) { + args.push(field); + if (typeof fieldOptions === 'string') { + args.push(fieldOptions); + continue; + } + if (fieldOptions.AS) { + args.push('AS', fieldOptions.AS); + } + args.push(fieldOptions.type); + switch (fieldOptions.type) { + case SchemaFieldTypes.TEXT: + if (fieldOptions.NOSTEM) { + args.push('NOSTEM'); + } + if (fieldOptions.WEIGHT) { + args.push('WEIGHT', fieldOptions.WEIGHT.toString()); + } + if (fieldOptions.PHONETIC) { + args.push('PHONETIC', fieldOptions.PHONETIC); + } + if (fieldOptions.WITHSUFFIXTRIE) { + args.push('WITHSUFFIXTRIE'); + } + break; + // case SchemaFieldTypes.NUMERIC: + // case SchemaFieldTypes.GEO: + // break; + case SchemaFieldTypes.TAG: + if (fieldOptions.SEPARATOR) { + args.push('SEPARATOR', fieldOptions.SEPARATOR); + } + if (fieldOptions.CASESENSITIVE) { + args.push('CASESENSITIVE'); + } + if (fieldOptions.WITHSUFFIXTRIE) { + args.push('WITHSUFFIXTRIE'); + } + break; + case SchemaFieldTypes.VECTOR: + args.push(fieldOptions.ALGORITHM); + pushArgumentsWithLength(args, () => { + args.push('TYPE', fieldOptions.TYPE, 'DIM', fieldOptions.DIM.toString(), 'DISTANCE_METRIC', fieldOptions.DISTANCE_METRIC); + if (fieldOptions.INITIAL_CAP) { + args.push('INITIAL_CAP', fieldOptions.INITIAL_CAP.toString()); + } + switch (fieldOptions.ALGORITHM) { + case VectorAlgorithms.FLAT: + if (fieldOptions.BLOCK_SIZE) { + args.push('BLOCK_SIZE', fieldOptions.BLOCK_SIZE.toString()); + } + break; + case VectorAlgorithms.HNSW: + if (fieldOptions.M) { + args.push('M', fieldOptions.M.toString()); + } + if (fieldOptions.EF_CONSTRUCTION) { + args.push('EF_CONSTRUCTION', fieldOptions.EF_CONSTRUCTION.toString()); + } + if (fieldOptions.EF_RUNTIME) { + args.push('EF_RUNTIME', fieldOptions.EF_RUNTIME.toString()); + } + break; + } + }); + continue; // vector fields do not contain SORTABLE and NOINDEX options + } + if (fieldOptions.SORTABLE) { + args.push('SORTABLE'); + if (fieldOptions.SORTABLE === 'UNF') { + args.push('UNF'); + } + } + if (fieldOptions.NOINDEX) { + args.push('NOINDEX'); + } + } +} +exports.pushSchema = pushSchema; +function pushParamsArgs(args, params) { + if (params) { + const enrties = Object.entries(params); + args.push('PARAMS', (enrties.length * 2).toString()); + for (const [key, value] of enrties) { + args.push(key, typeof value === 'number' ? value.toString() : value); + } + } + return args; +} +exports.pushParamsArgs = pushParamsArgs; +function pushSearchOptions(args, options) { + if (options?.VERBATIM) { + args.push('VERBATIM'); + } + if (options?.NOSTOPWORDS) { + args.push('NOSTOPWORDS'); + } + // if (options?.WITHSCORES) { + // args.push('WITHSCORES'); + // } + // if (options?.WITHPAYLOADS) { + // args.push('WITHPAYLOADS'); + // } + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'INKEYS', options?.INKEYS); + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'INFIELDS', options?.INFIELDS); + (0, generic_transformers_1.pushOptionalVerdictArgument)(args, 'RETURN', options?.RETURN); + if (options?.SUMMARIZE) { + args.push('SUMMARIZE'); + if (typeof options.SUMMARIZE === 'object') { + if (options.SUMMARIZE.FIELDS) { + args.push('FIELDS'); + (0, generic_transformers_1.pushVerdictArgument)(args, options.SUMMARIZE.FIELDS); + } + if (options.SUMMARIZE.FRAGS) { + args.push('FRAGS', options.SUMMARIZE.FRAGS.toString()); + } + if (options.SUMMARIZE.LEN) { + args.push('LEN', options.SUMMARIZE.LEN.toString()); + } + if (options.SUMMARIZE.SEPARATOR) { + args.push('SEPARATOR', options.SUMMARIZE.SEPARATOR); + } + } + } + if (options?.HIGHLIGHT) { + args.push('HIGHLIGHT'); + if (typeof options.HIGHLIGHT === 'object') { + if (options.HIGHLIGHT.FIELDS) { + args.push('FIELDS'); + (0, generic_transformers_1.pushVerdictArgument)(args, options.HIGHLIGHT.FIELDS); + } + if (options.HIGHLIGHT.TAGS) { + args.push('TAGS', options.HIGHLIGHT.TAGS.open, options.HIGHLIGHT.TAGS.close); + } + } + } + if (options?.SLOP) { + args.push('SLOP', options.SLOP.toString()); + } + if (options?.INORDER) { + args.push('INORDER'); + } + if (options?.LANGUAGE) { + args.push('LANGUAGE', options.LANGUAGE); + } + if (options?.EXPANDER) { + args.push('EXPANDER', options.EXPANDER); + } + if (options?.SCORER) { + args.push('SCORER', options.SCORER); + } + // if (options?.EXPLAINSCORE) { + // args.push('EXPLAINSCORE'); + // } + // if (options?.PAYLOAD) { + // args.push('PAYLOAD', options.PAYLOAD); + // } + if (options?.SORTBY) { + args.push('SORTBY'); + pushSortByProperty(args, options.SORTBY); + } + // if (options?.MSORTBY) { + // pushSortByArguments(args, 'MSORTBY', options.MSORTBY); + // } + if (options?.LIMIT) { + args.push('LIMIT', options.LIMIT.from.toString(), options.LIMIT.size.toString()); + } + if (options?.PARAMS) { + pushParamsArgs(args, options.PARAMS); + } + if (options?.DIALECT) { + args.push('DIALECT', options.DIALECT.toString()); + } + if (options?.RETURN?.length === 0) { + args.preserve = true; + } + return args; +} +exports.pushSearchOptions = pushSearchOptions; +function transformProfile(reply) { + return { + totalProfileTime: reply[0][1], + parsingTime: reply[1][1], + pipelineCreationTime: reply[2][1], + iteratorsProfile: transformIterators(reply[3][1]) + }; +} +exports.transformProfile = transformProfile; +function transformIterators(IteratorsProfile) { + var res = {}; + for (let i = 0; i < IteratorsProfile.length; i += 2) { + const value = IteratorsProfile[i + 1]; + switch (IteratorsProfile[i]) { + case 'Type': + res.type = value; + break; + case 'Counter': + res.counter = value; + break; + case 'Time': + res.time = value; + break; + case 'Query type': + res.queryType = value; + break; + case 'Child iterators': + res.childIterators = value.map(transformChildIterators); + break; + } + } + return res; +} +function transformChildIterators(IteratorsProfile) { + var res = {}; + for (let i = 1; i < IteratorsProfile.length; i += 2) { + const value = IteratorsProfile[i + 1]; + switch (IteratorsProfile[i]) { + case 'Type': + res.type = value; + break; + case 'Counter': + res.counter = value; + break; + case 'Time': + res.time = value; + break; + case 'Size': + res.size = value; + break; + case 'Term': + res.term = value; + break; + case 'Child iterators': + res.childIterators = value.map(transformChildIterators); + break; + } + } + return res; +} + + +/***/ }), + +/***/ 78073: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AggregateGroupByReducers = exports.AggregateSteps = exports.VectorAlgorithms = exports.SchemaTextFieldPhonetics = exports.SchemaFieldTypes = exports["default"] = void 0; +var commands_1 = __nccwpck_require__(57583); +Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return commands_1.default; } })); +var commands_2 = __nccwpck_require__(57583); +Object.defineProperty(exports, "SchemaFieldTypes", ({ enumerable: true, get: function () { return commands_2.SchemaFieldTypes; } })); +Object.defineProperty(exports, "SchemaTextFieldPhonetics", ({ enumerable: true, get: function () { return commands_2.SchemaTextFieldPhonetics; } })); +Object.defineProperty(exports, "VectorAlgorithms", ({ enumerable: true, get: function () { return commands_2.VectorAlgorithms; } })); +var AGGREGATE_1 = __nccwpck_require__(8992); +Object.defineProperty(exports, "AggregateSteps", ({ enumerable: true, get: function () { return AGGREGATE_1.AggregateSteps; } })); +Object.defineProperty(exports, "AggregateGroupByReducers", ({ enumerable: true, get: function () { return AGGREGATE_1.AggregateGroupByReducers; } })); + + +/***/ }), + +/***/ 31663: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, timestamp, value, options) { + const args = [ + 'TS.ADD', + key, + (0, _1.transformTimestampArgument)(timestamp), + value.toString() + ]; + (0, _1.pushRetentionArgument)(args, options?.RETENTION); + (0, _1.pushEncodingArgument)(args, options?.ENCODING); + (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE); + if (options?.ON_DUPLICATE) { + args.push('ON_DUPLICATE', options.ON_DUPLICATE); + } + (0, _1.pushLabelsArgument)(args, options?.LABELS); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 53791: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + const args = ['TS.ALTER', key]; + (0, _1.pushRetentionArgument)(args, options?.RETENTION); + (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE); + (0, _1.pushDuplicatePolicy)(args, options?.DUPLICATE_POLICY); + (0, _1.pushLabelsArgument)(args, options?.LABELS); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 73289: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, options) { + const args = ['TS.CREATE', key]; + (0, _1.pushRetentionArgument)(args, options?.RETENTION); + (0, _1.pushEncodingArgument)(args, options?.ENCODING); + (0, _1.pushChunkSizeArgument)(args, options?.CHUNK_SIZE); + (0, _1.pushDuplicatePolicy)(args, options?.DUPLICATE_POLICY); + (0, _1.pushLabelsArgument)(args, options?.LABELS); + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 74784: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(sourceKey, destinationKey, aggregationType, bucketDuration, alignTimestamp) { + const args = [ + 'TS.CREATERULE', + sourceKey, + destinationKey, + 'AGGREGATION', + aggregationType, + bucketDuration.toString() + ]; + if (alignTimestamp) { + args.push(alignTimestamp.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 5871: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value, options) { + return (0, _1.transformIncrDecrArguments)('TS.DECRBY', key, value, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 53016: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRTS_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRTS_KEY_INDEX = 1; +function transformArguments(key, fromTimestamp, toTimestamp) { + return [ + 'TS.DEL', + key, + (0, _1.transformTimestampArgument)(fromTimestamp), + (0, _1.transformTimestampArgument)(toTimestamp) + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 46653: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +function transformArguments(sourceKey, destinationKey) { + return [ + 'TS.DELETERULE', + sourceKey, + destinationKey + ]; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 69063: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, options) { + return (0, _1.pushLatestArgument)(['TS.GET', key], options?.LATEST); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + if (reply.length === 0) + return null; + return (0, _1.transformSampleReply)(reply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 85447: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(key, value, options) { + return (0, _1.transformIncrDecrArguments)('TS.INCRBY', key, value, options); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 3419: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key) { + return ['TS.INFO', key]; +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return { + totalSamples: reply[1], + memoryUsage: reply[3], + firstTimestamp: reply[5], + lastTimestamp: reply[7], + retentionTime: reply[9], + chunkCount: reply[11], + chunkSize: reply[13], + chunkType: reply[15], + duplicatePolicy: reply[17], + labels: reply[19].map(([name, value]) => ({ + name, + value + })), + sourceKey: reply[21], + rules: reply[23].map(([key, timeBucket, aggregationType]) => ({ + key, + timeBucket, + aggregationType + })) + }; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 88124: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.FIRST_KEY_INDEX = exports.IS_READ_ONLY = void 0; +const INFO_1 = __nccwpck_require__(3419); +var INFO_2 = __nccwpck_require__(3419); +Object.defineProperty(exports, "IS_READ_ONLY", ({ enumerable: true, get: function () { return INFO_2.IS_READ_ONLY; } })); +Object.defineProperty(exports, "FIRST_KEY_INDEX", ({ enumerable: true, get: function () { return INFO_2.FIRST_KEY_INDEX; } })); +function transformArguments(key) { + const args = (0, INFO_1.transformArguments)(key); + args.push('DEBUG'); + return args; +} +exports.transformArguments = transformArguments; +function transformReply(rawReply) { + const reply = (0, INFO_1.transformReply)(rawReply); + reply.keySelfName = rawReply[25]; + reply.chunks = rawReply[27].map(chunk => ({ + startTimestamp: chunk[1], + endTimestamp: chunk[3], + samples: chunk[5], + size: chunk[7], + bytesPerSample: chunk[9] + })); + return reply; +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 23958: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +function transformArguments(toAdd) { + const args = ['TS.MADD']; + for (const { key, timestamp, value } of toAdd) { + args.push(key, (0, _1.transformTimestampArgument)(timestamp), value.toString()); + } + return args; +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 49608: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(12853); +exports.IS_READ_ONLY = true; +function transformArguments(filter, options) { + const args = (0, _1.pushLatestArgument)(['TS.MGET'], options?.LATEST); + return (0, _1.pushFilterArgument)(args, filter); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return reply.map(([key, _, sample]) => ({ + key, + sample: (0, _1.transformSampleReply)(sample) + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 51479: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(12853); +exports.IS_READ_ONLY = true; +function transformArguments(filter, options) { + const args = (0, _1.pushWithLabelsArgument)(['TS.MGET'], options?.SELECTED_LABELS); + return (0, _1.pushFilterArgument)(args, filter); +} +exports.transformArguments = transformArguments; +; +function transformReply(reply) { + return reply.map(([key, labels, sample]) => ({ + key, + labels: (0, _1.transformLablesReply)(labels), + sample: (0, _1.transformSampleReply)(sample) + })); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 64155: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(12853); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeArguments)(['TS.MRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = __nccwpck_require__(12853); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _2.transformMRangeReply; } })); + + +/***/ }), + +/***/ 23012: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(12853); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeWithLabelsArguments)(['TS.MRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = __nccwpck_require__(12853); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _2.transformMRangeWithLabelsReply; } })); + + +/***/ }), + +/***/ 25103: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(12853); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeArguments)(['TS.MREVRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = __nccwpck_require__(12853); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _2.transformMRangeReply; } })); + + +/***/ }), + +/***/ 10243: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = void 0; +const _1 = __nccwpck_require__(12853); +exports.IS_READ_ONLY = true; +function transformArguments(fromTimestamp, toTimestamp, filters, options) { + return (0, _1.pushMRangeWithLabelsArguments)(['TS.MREVRANGE'], fromTimestamp, toTimestamp, filters, options); +} +exports.transformArguments = transformArguments; +var _2 = __nccwpck_require__(12853); +Object.defineProperty(exports, "transformReply", ({ enumerable: true, get: function () { return _2.transformMRangeWithLabelsReply; } })); + + +/***/ }), + +/***/ 30737: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformArguments = exports.IS_READ_ONLY = void 0; +const generic_transformers_1 = __nccwpck_require__(31204); +exports.IS_READ_ONLY = true; +function transformArguments(filter) { + return (0, generic_transformers_1.pushVerdictArguments)(['TS.QUERYINDEX'], filter); +} +exports.transformArguments = transformArguments; + + +/***/ }), + +/***/ 87892: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fromTimestamp, toTimestamp, options) { + return (0, _1.pushRangeArguments)(['TS.RANGE', key], fromTimestamp, toTimestamp, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return (0, _1.transformRangeReply)(reply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 43174: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.transformReply = exports.transformArguments = exports.IS_READ_ONLY = exports.FIRST_KEY_INDEX = void 0; +const _1 = __nccwpck_require__(12853); +exports.FIRST_KEY_INDEX = 1; +exports.IS_READ_ONLY = true; +function transformArguments(key, fromTimestamp, toTimestamp, options) { + return (0, _1.pushRangeArguments)(['TS.REVRANGE', key], fromTimestamp, toTimestamp, options); +} +exports.transformArguments = transformArguments; +function transformReply(reply) { + return (0, _1.transformRangeReply)(reply); +} +exports.transformReply = transformReply; + + +/***/ }), + +/***/ 12853: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.pushLatestArgument = exports.transformMRangeWithLabelsReply = exports.transformMRangeReply = exports.transformRangeReply = exports.pushMRangeWithLabelsArguments = exports.pushWithLabelsArgument = exports.pushMRangeArguments = exports.pushFilterArgument = exports.pushMRangeGroupByArguments = exports.pushRangeArguments = exports.TimeSeriesBucketTimestamp = exports.transformSampleReply = exports.transformIncrDecrArguments = exports.pushLabelsArgument = exports.transformLablesReply = exports.pushDuplicatePolicy = exports.pushChunkSizeArgument = exports.pushEncodingArgument = exports.TimeSeriesEncoding = exports.pushRetentionArgument = exports.transformTimestampArgument = exports.TimeSeriesReducers = exports.TimeSeriesDuplicatePolicies = exports.TimeSeriesAggregationType = void 0; +const ADD = __nccwpck_require__(31663); +const ALTER = __nccwpck_require__(53791); +const CREATE = __nccwpck_require__(73289); +const CREATERULE = __nccwpck_require__(74784); +const DECRBY = __nccwpck_require__(5871); +const DEL = __nccwpck_require__(53016); +const DELETERULE = __nccwpck_require__(46653); +const GET = __nccwpck_require__(69063); +const INCRBY = __nccwpck_require__(85447); +const INFO_DEBUG = __nccwpck_require__(88124); +const INFO = __nccwpck_require__(3419); +const MADD = __nccwpck_require__(23958); +const MGET = __nccwpck_require__(49608); +const MGET_WITHLABELS = __nccwpck_require__(51479); +const QUERYINDEX = __nccwpck_require__(30737); +const RANGE = __nccwpck_require__(87892); +const REVRANGE = __nccwpck_require__(43174); +const MRANGE = __nccwpck_require__(64155); +const MRANGE_WITHLABELS = __nccwpck_require__(23012); +const MREVRANGE = __nccwpck_require__(25103); +const MREVRANGE_WITHLABELS = __nccwpck_require__(10243); +const generic_transformers_1 = __nccwpck_require__(31204); +exports["default"] = { + ADD, + add: ADD, + ALTER, + alter: ALTER, + CREATE, + create: CREATE, + CREATERULE, + createRule: CREATERULE, + DECRBY, + decrBy: DECRBY, + DEL, + del: DEL, + DELETERULE, + deleteRule: DELETERULE, + GET, + get: GET, + INCRBY, + incrBy: INCRBY, + INFO_DEBUG, + infoDebug: INFO_DEBUG, + INFO, + info: INFO, + MADD, + mAdd: MADD, + MGET, + mGet: MGET, + MGET_WITHLABELS, + mGetWithLabels: MGET_WITHLABELS, + QUERYINDEX, + queryIndex: QUERYINDEX, + RANGE, + range: RANGE, + REVRANGE, + revRange: REVRANGE, + MRANGE, + mRange: MRANGE, + MRANGE_WITHLABELS, + mRangeWithLabels: MRANGE_WITHLABELS, + MREVRANGE, + mRevRange: MREVRANGE, + MREVRANGE_WITHLABELS, + mRevRangeWithLabels: MREVRANGE_WITHLABELS +}; +var TimeSeriesAggregationType; +(function (TimeSeriesAggregationType) { + TimeSeriesAggregationType["AVG"] = "AVG"; + // @deprecated + TimeSeriesAggregationType["AVERAGE"] = "AVG"; + TimeSeriesAggregationType["FIRST"] = "FIRST"; + TimeSeriesAggregationType["LAST"] = "LAST"; + TimeSeriesAggregationType["MIN"] = "MIN"; + // @deprecated + TimeSeriesAggregationType["MINIMUM"] = "MIN"; + TimeSeriesAggregationType["MAX"] = "MAX"; + // @deprecated + TimeSeriesAggregationType["MAXIMUM"] = "MAX"; + TimeSeriesAggregationType["SUM"] = "SUM"; + TimeSeriesAggregationType["RANGE"] = "RANGE"; + TimeSeriesAggregationType["COUNT"] = "COUNT"; + TimeSeriesAggregationType["STD_P"] = "STD.P"; + TimeSeriesAggregationType["STD_S"] = "STD.S"; + TimeSeriesAggregationType["VAR_P"] = "VAR.P"; + TimeSeriesAggregationType["VAR_S"] = "VAR.S"; + TimeSeriesAggregationType["TWA"] = "TWA"; +})(TimeSeriesAggregationType = exports.TimeSeriesAggregationType || (exports.TimeSeriesAggregationType = {})); +var TimeSeriesDuplicatePolicies; +(function (TimeSeriesDuplicatePolicies) { + TimeSeriesDuplicatePolicies["BLOCK"] = "BLOCK"; + TimeSeriesDuplicatePolicies["FIRST"] = "FIRST"; + TimeSeriesDuplicatePolicies["LAST"] = "LAST"; + TimeSeriesDuplicatePolicies["MIN"] = "MIN"; + TimeSeriesDuplicatePolicies["MAX"] = "MAX"; + TimeSeriesDuplicatePolicies["SUM"] = "SUM"; +})(TimeSeriesDuplicatePolicies = exports.TimeSeriesDuplicatePolicies || (exports.TimeSeriesDuplicatePolicies = {})); +var TimeSeriesReducers; +(function (TimeSeriesReducers) { + TimeSeriesReducers["AVG"] = "AVG"; + TimeSeriesReducers["SUM"] = "SUM"; + TimeSeriesReducers["MIN"] = "MIN"; + // @deprecated + TimeSeriesReducers["MINIMUM"] = "MIN"; + TimeSeriesReducers["MAX"] = "MAX"; + // @deprecated + TimeSeriesReducers["MAXIMUM"] = "MAX"; + TimeSeriesReducers["RANGE"] = "range"; + TimeSeriesReducers["COUNT"] = "COUNT"; + TimeSeriesReducers["STD_P"] = "STD.P"; + TimeSeriesReducers["STD_S"] = "STD.S"; + TimeSeriesReducers["VAR_P"] = "VAR.P"; + TimeSeriesReducers["VAR_S"] = "VAR.S"; +})(TimeSeriesReducers = exports.TimeSeriesReducers || (exports.TimeSeriesReducers = {})); +function transformTimestampArgument(timestamp) { + if (typeof timestamp === 'string') + return timestamp; + return (typeof timestamp === 'number' ? + timestamp : + timestamp.getTime()).toString(); +} +exports.transformTimestampArgument = transformTimestampArgument; +function pushRetentionArgument(args, retention) { + if (retention) { + args.push('RETENTION', retention.toString()); + } + return args; +} +exports.pushRetentionArgument = pushRetentionArgument; +var TimeSeriesEncoding; +(function (TimeSeriesEncoding) { + TimeSeriesEncoding["COMPRESSED"] = "COMPRESSED"; + TimeSeriesEncoding["UNCOMPRESSED"] = "UNCOMPRESSED"; +})(TimeSeriesEncoding = exports.TimeSeriesEncoding || (exports.TimeSeriesEncoding = {})); +function pushEncodingArgument(args, encoding) { + if (encoding) { + args.push('ENCODING', encoding); + } + return args; +} +exports.pushEncodingArgument = pushEncodingArgument; +function pushChunkSizeArgument(args, chunkSize) { + if (chunkSize) { + args.push('CHUNK_SIZE', chunkSize.toString()); + } + return args; +} +exports.pushChunkSizeArgument = pushChunkSizeArgument; +function pushDuplicatePolicy(args, duplicatePolicy) { + if (duplicatePolicy) { + args.push('DUPLICATE_POLICY', duplicatePolicy); + } + return args; +} +exports.pushDuplicatePolicy = pushDuplicatePolicy; +function transformLablesReply(reply) { + const labels = {}; + for (const [key, value] of reply) { + labels[key] = value; + } + return labels; +} +exports.transformLablesReply = transformLablesReply; +function pushLabelsArgument(args, labels) { + if (labels) { + args.push('LABELS'); + for (const [label, value] of Object.entries(labels)) { + args.push(label, value); + } + } + return args; +} +exports.pushLabelsArgument = pushLabelsArgument; +function transformIncrDecrArguments(command, key, value, options) { + const args = [ + command, + key, + value.toString() + ]; + if (options?.TIMESTAMP !== undefined && options?.TIMESTAMP !== null) { + args.push('TIMESTAMP', transformTimestampArgument(options.TIMESTAMP)); + } + pushRetentionArgument(args, options?.RETENTION); + if (options?.UNCOMPRESSED) { + args.push('UNCOMPRESSED'); + } + pushChunkSizeArgument(args, options?.CHUNK_SIZE); + pushLabelsArgument(args, options?.LABELS); + return args; +} +exports.transformIncrDecrArguments = transformIncrDecrArguments; +function transformSampleReply(reply) { + return { + timestamp: reply[0], + value: Number(reply[1]) + }; +} +exports.transformSampleReply = transformSampleReply; +var TimeSeriesBucketTimestamp; +(function (TimeSeriesBucketTimestamp) { + TimeSeriesBucketTimestamp["LOW"] = "-"; + TimeSeriesBucketTimestamp["HIGH"] = "+"; + TimeSeriesBucketTimestamp["MID"] = "~"; +})(TimeSeriesBucketTimestamp = exports.TimeSeriesBucketTimestamp || (exports.TimeSeriesBucketTimestamp = {})); +function pushRangeArguments(args, fromTimestamp, toTimestamp, options) { + args.push(transformTimestampArgument(fromTimestamp), transformTimestampArgument(toTimestamp)); + pushLatestArgument(args, options?.LATEST); + if (options?.FILTER_BY_TS) { + args.push('FILTER_BY_TS'); + for (const ts of options.FILTER_BY_TS) { + args.push(transformTimestampArgument(ts)); + } + } + if (options?.FILTER_BY_VALUE) { + args.push('FILTER_BY_VALUE', options.FILTER_BY_VALUE.min.toString(), options.FILTER_BY_VALUE.max.toString()); + } + if (options?.COUNT) { + args.push('COUNT', options.COUNT.toString()); + } + if (options?.ALIGN) { + args.push('ALIGN', transformTimestampArgument(options.ALIGN)); + } + if (options?.AGGREGATION) { + args.push('AGGREGATION', options.AGGREGATION.type, transformTimestampArgument(options.AGGREGATION.timeBucket)); + if (options.AGGREGATION.BUCKETTIMESTAMP) { + args.push('BUCKETTIMESTAMP', options.AGGREGATION.BUCKETTIMESTAMP); + } + if (options.AGGREGATION.EMPTY) { + args.push('EMPTY'); + } + } + return args; +} +exports.pushRangeArguments = pushRangeArguments; +function pushMRangeGroupByArguments(args, groupBy) { + if (groupBy) { + args.push('GROUPBY', groupBy.label, 'REDUCE', groupBy.reducer); + } + return args; +} +exports.pushMRangeGroupByArguments = pushMRangeGroupByArguments; +function pushFilterArgument(args, filter) { + args.push('FILTER'); + return (0, generic_transformers_1.pushVerdictArguments)(args, filter); +} +exports.pushFilterArgument = pushFilterArgument; +function pushMRangeArguments(args, fromTimestamp, toTimestamp, filter, options) { + args = pushRangeArguments(args, fromTimestamp, toTimestamp, options); + args = pushFilterArgument(args, filter); + return pushMRangeGroupByArguments(args, options?.GROUPBY); +} +exports.pushMRangeArguments = pushMRangeArguments; +function pushWithLabelsArgument(args, selectedLabels) { + if (!selectedLabels) { + args.push('WITHLABELS'); + } + else { + args.push('SELECTED_LABELS'); + args = (0, generic_transformers_1.pushVerdictArguments)(args, selectedLabels); + } + return args; +} +exports.pushWithLabelsArgument = pushWithLabelsArgument; +function pushMRangeWithLabelsArguments(args, fromTimestamp, toTimestamp, filter, options) { + args = pushRangeArguments(args, fromTimestamp, toTimestamp, options); + args = pushWithLabelsArgument(args, options?.SELECTED_LABELS); + args = pushFilterArgument(args, filter); + return pushMRangeGroupByArguments(args, options?.GROUPBY); +} +exports.pushMRangeWithLabelsArguments = pushMRangeWithLabelsArguments; +function transformRangeReply(reply) { + return reply.map(transformSampleReply); +} +exports.transformRangeReply = transformRangeReply; +function transformMRangeReply(reply) { + const args = []; + for (const [key, _, sample] of reply) { + args.push({ + key, + samples: sample.map(transformSampleReply) + }); + } + return args; +} +exports.transformMRangeReply = transformMRangeReply; +function transformMRangeWithLabelsReply(reply) { + const args = []; + for (const [key, labels, samples] of reply) { + args.push({ + key, + labels: transformLablesReply(labels), + samples: samples.map(transformSampleReply) + }); + } + return args; +} +exports.transformMRangeWithLabelsReply = transformMRangeWithLabelsReply; +function pushLatestArgument(args, latest) { + if (latest) { + args.push('LATEST'); + } + return args; +} +exports.pushLatestArgument = pushLatestArgument; + + +/***/ }), + +/***/ 26941: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TimeSeriesBucketTimestamp = exports.TimeSeriesReducers = exports.TimeSeriesAggregationType = exports.TimeSeriesEncoding = exports.TimeSeriesDuplicatePolicies = exports["default"] = void 0; +var commands_1 = __nccwpck_require__(12853); +Object.defineProperty(exports, "default", ({ enumerable: true, get: function () { return commands_1.default; } })); +var commands_2 = __nccwpck_require__(12853); +Object.defineProperty(exports, "TimeSeriesDuplicatePolicies", ({ enumerable: true, get: function () { return commands_2.TimeSeriesDuplicatePolicies; } })); +Object.defineProperty(exports, "TimeSeriesEncoding", ({ enumerable: true, get: function () { return commands_2.TimeSeriesEncoding; } })); +Object.defineProperty(exports, "TimeSeriesAggregationType", ({ enumerable: true, get: function () { return commands_2.TimeSeriesAggregationType; } })); +Object.defineProperty(exports, "TimeSeriesReducers", ({ enumerable: true, get: function () { return commands_2.TimeSeriesReducers; } })); +Object.defineProperty(exports, "TimeSeriesBucketTimestamp", ({ enumerable: true, get: function () { return commands_2.TimeSeriesBucketTimestamp; } })); + + +/***/ }), + +/***/ 84131: +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +const events_1 = __nccwpck_require__(82361); +const debug_1 = __importDefault(__nccwpck_require__(82539)); +const promisify_1 = __importDefault(__nccwpck_require__(70809)); +const debug = debug_1.default('agent-base'); +function isAgent(v) { + return Boolean(v) && typeof v.addRequest === 'function'; +} +function isSecureEndpoint() { + const { stack } = new Error(); + if (typeof stack !== 'string') + return false; + return stack.split('\n').some(l => l.indexOf('(https.js:') !== -1 || l.indexOf('node:https:') !== -1); +} +function createAgent(callback, opts) { + return new createAgent.Agent(callback, opts); +} +(function (createAgent) { + /** + * Base `http.Agent` implementation. + * No pooling/keep-alive is implemented by default. + * + * @param {Function} callback + * @api public + */ + class Agent extends events_1.EventEmitter { + constructor(callback, _opts) { + super(); + let opts = _opts; + if (typeof callback === 'function') { + this.callback = callback; + } + else if (callback) { + opts = callback; + } + // Timeout for the socket to be returned from the callback + this.timeout = null; + if (opts && typeof opts.timeout === 'number') { + this.timeout = opts.timeout; + } + // These aren't actually used by `agent-base`, but are required + // for the TypeScript definition files in `@types/node` :/ + this.maxFreeSockets = 1; + this.maxSockets = 1; + this.maxTotalSockets = Infinity; + this.sockets = {}; + this.freeSockets = {}; + this.requests = {}; + this.options = {}; + } + get defaultPort() { + if (typeof this.explicitDefaultPort === 'number') { + return this.explicitDefaultPort; + } + return isSecureEndpoint() ? 443 : 80; + } + set defaultPort(v) { + this.explicitDefaultPort = v; + } + get protocol() { + if (typeof this.explicitProtocol === 'string') { + return this.explicitProtocol; + } + return isSecureEndpoint() ? 'https:' : 'http:'; + } + set protocol(v) { + this.explicitProtocol = v; + } + callback(req, opts, fn) { + throw new Error('"agent-base" has no default implementation, you must subclass and override `callback()`'); + } + /** + * Called by node-core's "_http_client.js" module when creating + * a new HTTP request with this Agent instance. + * + * @api public + */ + addRequest(req, _opts) { + const opts = Object.assign({}, _opts); + if (typeof opts.secureEndpoint !== 'boolean') { + opts.secureEndpoint = isSecureEndpoint(); + } + if (opts.host == null) { + opts.host = 'localhost'; + } + if (opts.port == null) { + opts.port = opts.secureEndpoint ? 443 : 80; + } + if (opts.protocol == null) { + opts.protocol = opts.secureEndpoint ? 'https:' : 'http:'; + } + if (opts.host && opts.path) { + // If both a `host` and `path` are specified then it's most + // likely the result of a `url.parse()` call... we need to + // remove the `path` portion so that `net.connect()` doesn't + // attempt to open that as a unix socket file. + delete opts.path; + } + delete opts.agent; + delete opts.hostname; + delete opts._defaultAgent; + delete opts.defaultPort; + delete opts.createConnection; + // Hint to use "Connection: close" + // XXX: non-documented `http` module API :( + req._last = true; + req.shouldKeepAlive = false; + let timedOut = false; + let timeoutId = null; + const timeoutMs = opts.timeout || this.timeout; + const onerror = (err) => { + if (req._hadError) + return; + req.emit('error', err); + // For Safety. Some additional errors might fire later on + // and we need to make sure we don't double-fire the error event. + req._hadError = true; + }; + const ontimeout = () => { + timeoutId = null; + timedOut = true; + const err = new Error(`A "socket" was not created for HTTP request before ${timeoutMs}ms`); + err.code = 'ETIMEOUT'; + onerror(err); + }; + const callbackError = (err) => { + if (timedOut) + return; + if (timeoutId !== null) { + clearTimeout(timeoutId); + timeoutId = null; + } + onerror(err); + }; + const onsocket = (socket) => { + if (timedOut) + return; + if (timeoutId != null) { + clearTimeout(timeoutId); + timeoutId = null; + } + if (isAgent(socket)) { + // `socket` is actually an `http.Agent` instance, so + // relinquish responsibility for this `req` to the Agent + // from here on + debug('Callback returned another Agent instance %o', socket.constructor.name); + socket.addRequest(req, opts); + return; + } + if (socket) { + socket.once('free', () => { + this.freeSocket(socket, opts); + }); + req.onSocket(socket); + return; + } + const err = new Error(`no Duplex stream was returned to agent-base for \`${req.method} ${req.path}\``); + onerror(err); + }; + if (typeof this.callback !== 'function') { + onerror(new Error('`callback` is not defined')); + return; + } + if (!this.promisifiedCallback) { + if (this.callback.length >= 3) { + debug('Converting legacy callback function to promise'); + this.promisifiedCallback = promisify_1.default(this.callback); + } + else { + this.promisifiedCallback = this.callback; + } + } + if (typeof timeoutMs === 'number' && timeoutMs > 0) { + timeoutId = setTimeout(ontimeout, timeoutMs); + } + if ('port' in opts && typeof opts.port !== 'number') { + opts.port = Number(opts.port); + } + try { + debug('Resolving socket for %o request: %o', opts.protocol, `${req.method} ${req.path}`); + Promise.resolve(this.promisifiedCallback(req, opts)).then(onsocket, callbackError); + } + catch (err) { + Promise.reject(err).catch(callbackError); + } + } + freeSocket(socket, opts) { + debug('Freeing socket %o %o', socket.constructor.name, opts); + socket.destroy(); + } + destroy() { + debug('Destroying agent %o', this.constructor.name); + } + } + createAgent.Agent = Agent; + // So that `instanceof` works correctly + createAgent.prototype = createAgent.Agent.prototype; +})(createAgent || (createAgent = {})); +module.exports = createAgent; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 70809: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +function promisify(fn) { + return function (req, opts) { + return new Promise((resolve, reject) => { + fn.call(this, req, opts, (err, rtn) => { + if (err) { + reject(err); + } + else { + resolve(rtn); + } + }); + }); + }; +} +exports["default"] = promisify; +//# sourceMappingURL=promisify.js.map + +/***/ }), + +/***/ 59797: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = +{ + parallel : __nccwpck_require__(51168), + serial : __nccwpck_require__(87451), + serialOrdered : __nccwpck_require__(87341) +}; + + +/***/ }), + +/***/ 76145: +/***/ ((module) => { + +// API +module.exports = abort; + +/** + * Aborts leftover active jobs + * + * @param {object} state - current state object + */ +function abort(state) +{ + Object.keys(state.jobs).forEach(clean.bind(state)); + + // reset leftover jobs + state.jobs = {}; +} + +/** + * Cleans up leftover job by invoking abort function for the provided job id + * + * @this state + * @param {string|number} key - job id to abort + */ +function clean(key) +{ + if (typeof this.jobs[key] == 'function') + { + this.jobs[key](); + } +} + + +/***/ }), + +/***/ 20107: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var defer = __nccwpck_require__(67832); + +// API +module.exports = async; + +/** + * Runs provided callback asynchronously + * even if callback itself is not + * + * @param {function} callback - callback to invoke + * @returns {function} - augmented callback + */ +function async(callback) +{ + var isAsync = false; + + // check if async happened + defer(function() { isAsync = true; }); + + return function async_callback(err, result) + { + if (isAsync) + { + callback(err, result); + } + else + { + defer(function nextTick_callback() + { + callback(err, result); + }); + } + }; +} + + +/***/ }), + +/***/ 67832: +/***/ ((module) => { + +module.exports = defer; + +/** + * Runs provided function on next iteration of the event loop + * + * @param {function} fn - function to run + */ +function defer(fn) +{ + var nextTick = typeof setImmediate == 'function' + ? setImmediate + : ( + typeof process == 'object' && typeof process.nextTick == 'function' + ? process.nextTick + : null + ); + + if (nextTick) + { + nextTick(fn); + } + else + { + setTimeout(fn, 0); + } +} + + +/***/ }), + +/***/ 31201: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var async = __nccwpck_require__(20107) + , abort = __nccwpck_require__(76145) + ; + +// API +module.exports = iterate; + +/** + * Iterates over each job object + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {object} state - current job status + * @param {function} callback - invoked when all elements processed + */ +function iterate(list, iterator, state, callback) +{ + // store current index + var key = state['keyedList'] ? state['keyedList'][state.index] : state.index; + + state.jobs[key] = runJob(iterator, key, list[key], function(error, output) + { + // don't repeat yourself + // skip secondary callbacks + if (!(key in state.jobs)) + { + return; + } + + // clean up jobs + delete state.jobs[key]; + + if (error) + { + // don't process rest of the results + // stop still active jobs + // and reset the list + abort(state); + } + else + { + state.results[key] = output; + } + + // return salvaged results + callback(error, state.results); + }); +} + +/** + * Runs iterator over provided job element + * + * @param {function} iterator - iterator to invoke + * @param {string|number} key - key/index of the element in the list of jobs + * @param {mixed} item - job description + * @param {function} callback - invoked after iterator is done with the job + * @returns {function|mixed} - job abort function or something else + */ +function runJob(iterator, key, item, callback) +{ + var aborter; + + // allow shortcut if iterator expects only two arguments + if (iterator.length == 2) + { + aborter = iterator(item, async(callback)); + } + // otherwise go with full three arguments + else + { + aborter = iterator(item, key, async(callback)); + } + + return aborter; +} + + +/***/ }), + +/***/ 60041: +/***/ ((module) => { + +// API +module.exports = state; + +/** + * Creates initial state object + * for iteration over list + * + * @param {array|object} list - list to iterate over + * @param {function|null} sortMethod - function to use for keys sort, + * or `null` to keep them as is + * @returns {object} - initial state object + */ +function state(list, sortMethod) +{ + var isNamedList = !Array.isArray(list) + , initState = + { + index : 0, + keyedList: isNamedList || sortMethod ? Object.keys(list) : null, + jobs : {}, + results : isNamedList ? {} : [], + size : isNamedList ? Object.keys(list).length : list.length + } + ; + + if (sortMethod) + { + // sort array keys based on it's values + // sort object's keys just on own merit + initState.keyedList.sort(isNamedList ? sortMethod : function(a, b) + { + return sortMethod(list[a], list[b]); + }); + } + + return initState; +} + + +/***/ }), + +/***/ 88617: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var abort = __nccwpck_require__(76145) + , async = __nccwpck_require__(20107) + ; + +// API +module.exports = terminator; + +/** + * Terminates jobs in the attached state context + * + * @this AsyncKitState# + * @param {function} callback - final callback to invoke after termination + */ +function terminator(callback) +{ + if (!Object.keys(this.jobs).length) + { + return; + } + + // fast forward iteration index + this.index = this.size; + + // abort jobs + abort(this); + + // send back results we have so far + async(callback)(null, this.results); +} + + +/***/ }), + +/***/ 51168: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var iterate = __nccwpck_require__(31201) + , initState = __nccwpck_require__(60041) + , terminator = __nccwpck_require__(88617) + ; + +// Public API +module.exports = parallel; + +/** + * Runs iterator over provided array elements in parallel + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function parallel(list, iterator, callback) +{ + var state = initState(list); + + while (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, function(error, result) + { + if (error) + { + callback(error, result); + return; + } + + // looks like it's the last one + if (Object.keys(state.jobs).length === 0) + { + callback(null, state.results); + return; + } + }); + + state.index++; + } + + return terminator.bind(state, callback); +} + + +/***/ }), + +/***/ 87451: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var serialOrdered = __nccwpck_require__(87341); + +// Public API +module.exports = serial; + +/** + * Runs iterator over provided array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serial(list, iterator, callback) +{ + return serialOrdered(list, iterator, null, callback); +} + + +/***/ }), + +/***/ 87341: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var iterate = __nccwpck_require__(31201) + , initState = __nccwpck_require__(60041) + , terminator = __nccwpck_require__(88617) + ; + +// Public API +module.exports = serialOrdered; +// sorting helpers +module.exports.ascending = ascending; +module.exports.descending = descending; + +/** + * Runs iterator over provided sorted array elements in series + * + * @param {array|object} list - array or object (named list) to iterate over + * @param {function} iterator - iterator to run + * @param {function} sortMethod - custom sort function + * @param {function} callback - invoked when all elements processed + * @returns {function} - jobs terminator + */ +function serialOrdered(list, iterator, sortMethod, callback) +{ + var state = initState(list, sortMethod); + + iterate(list, iterator, state, function iteratorHandler(error, result) + { + if (error) + { + callback(error, result); + return; + } + + state.index++; + + // are we there yet? + if (state.index < (state['keyedList'] || list).length) + { + iterate(list, iterator, state, iteratorHandler); + return; + } + + // done here + callback(null, state.results); + }); + + return terminator.bind(state, callback); +} + +/* + * -- Sort methods + */ + +/** + * sort helper to sort array elements in ascending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function ascending(a, b) +{ + return a < b ? -1 : a > b ? 1 : 0; +} + +/** + * sort helper to sort array elements in descending order + * + * @param {mixed} a - an item to compare + * @param {mixed} b - an item to compare + * @returns {number} - comparison result + */ +function descending(a, b) +{ + return -1 * ascending(a, b); +} + + +/***/ }), + +/***/ 60214: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var register = __nccwpck_require__(58671); +var addHook = __nccwpck_require__(35103); +var removeHook = __nccwpck_require__(15422); + +// bind with array of arguments: https://stackoverflow.com/a/21792913 +var bind = Function.bind; +var bindable = bind.bind(bind); + +function bindApi(hook, state, name) { + var removeHookRef = bindable(removeHook, null).apply( + null, + name ? [state, name] : [state] + ); + hook.api = { remove: removeHookRef }; + hook.remove = removeHookRef; + ["before", "error", "after", "wrap"].forEach(function (kind) { + var args = name ? [state, kind, name] : [state, kind]; + hook[kind] = hook.api[kind] = bindable(addHook, null).apply(null, args); + }); +} + +function HookSingular() { + var singularHookName = "h"; + var singularHookState = { + registry: {}, + }; + var singularHook = register.bind(null, singularHookState, singularHookName); + bindApi(singularHook, singularHookState, singularHookName); + return singularHook; +} + +function HookCollection() { + var state = { + registry: {}, + }; + + var hook = register.bind(null, state); + bindApi(hook, state); + + return hook; +} + +var collectionHookDeprecationMessageDisplayed = false; +function Hook() { + if (!collectionHookDeprecationMessageDisplayed) { + console.warn( + '[before-after-hook]: "Hook()" repurposing warning, use "Hook.Collection()". Read more: https://git.io/upgrade-before-after-hook-to-1.4' + ); + collectionHookDeprecationMessageDisplayed = true; + } + return HookCollection(); +} + +Hook.Singular = HookSingular.bind(); +Hook.Collection = HookCollection.bind(); + +module.exports = Hook; +// expose constructors as a named property for TypeScript +module.exports.Hook = Hook; +module.exports.Singular = Hook.Singular; +module.exports.Collection = Hook.Collection; + + +/***/ }), + +/***/ 35103: +/***/ ((module) => { + +module.exports = addHook; + +function addHook(state, kind, name, hook) { + var orig = hook; + if (!state.registry[name]) { + state.registry[name] = []; + } + + if (kind === "before") { + hook = function (method, options) { + return Promise.resolve() + .then(orig.bind(null, options)) + .then(method.bind(null, options)); + }; + } + + if (kind === "after") { + hook = function (method, options) { + var result; + return Promise.resolve() + .then(method.bind(null, options)) + .then(function (result_) { + result = result_; + return orig(result, options); + }) + .then(function () { + return result; + }); + }; + } + + if (kind === "error") { + hook = function (method, options) { + return Promise.resolve() + .then(method.bind(null, options)) + .catch(function (error) { + return orig(error, options); + }); + }; + } + + state.registry[name].push({ + hook: hook, + orig: orig, + }); +} + + +/***/ }), + +/***/ 58671: +/***/ ((module) => { + +module.exports = register; + +function register(state, name, method, options) { + if (typeof method !== "function") { + throw new Error("method for before hook must be a function"); + } + + if (!options) { + options = {}; + } + + if (Array.isArray(name)) { + return name.reverse().reduce(function (callback, name) { + return register.bind(null, state, name, callback, options); + }, method)(); + } + + return Promise.resolve().then(function () { + if (!state.registry[name]) { + return method(options); + } + + return state.registry[name].reduce(function (method, registered) { + return registered.hook.bind(null, method, options); + }, method)(); + }); +} + + +/***/ }), + +/***/ 15422: +/***/ ((module) => { + +module.exports = removeHook; + +function removeHook(state, name, method) { + if (!state.registry[name]) { + return; + } + + var index = state.registry[name] + .map(function (registered) { + return registered.orig; + }) + .indexOf(method); + + if (index === -1) { + return; + } + + state.registry[name].splice(index, 1); +} + + +/***/ }), + +/***/ 63801: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var _ = (__nccwpck_require__(36206)._); + +var LocalStorageBackend = function(options) { + var options = options || {}; + var name = options.name || Math.floor(Math.random() * 100000); + + this.prefix = 'classifier.bayesian.' + name; + + if (options.testing) { + this.storage = {}; + } + else { + this.storage = localStorage; + } + + this.storage[this.prefix + '.cats'] = '{}'; +} + +LocalStorageBackend.prototype = { + async : false, + + getCats : function() { + return JSON.parse(this.storage[this.prefix + '.cats']); + }, + + setCats : function(cats) { + this.storage[this.prefix + '.cats'] = JSON.stringify(cats); + }, + + getWordCount : function(word) { + return JSON.parse(this.storage[this.prefix + '.words.' + word] || '{}'); + }, + + setWordCount : function(word, counts) { + this.storage[this.prefix + '.words.' + word] = JSON.stringify(counts); + }, + + getWordCounts : function(words) { + var counts = {}; + words.forEach(function(word) { + counts[word] = this.getWordCount(word); + }, this); + return counts; + }, + + incCounts : function(catIncs, wordIncs) { + var cats = this.getCats(); + _(catIncs).each(function(inc, cat) { + cats[cat] = cats[cat] + inc || inc; + }, this); + this.setCats(cats); + + _(wordIncs).each(function(incs, word) { + var wordCounts = this.getWordCount(word); + _(incs).each(function(inc, cat) { + wordCounts[cat] = wordCounts[cat] + inc || inc; + }, this); + this.setWordCount(word, wordCounts); + }, this); + }, + + toJSON : function() { + var words = {}; + var regex = new RegExp("^" + this.prefix + "\.words\.(.+)$") + for (var item in this.storage) { + var match = regex.exec(item); + if (match) { + words[match[1]] = JSON.parse(this.storage[item]); + } + } + return { + cats: JSON.parse(this.storage[this.prefix + '.cats']), + words: words + }; + }, + + fromJSON : function(json) { + this.incCounts(json.cats, json.words); + } +} + +exports.u = LocalStorageBackend; + +/***/ }), + +/***/ 46650: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var _ = (__nccwpck_require__(36206)._); + +var MemoryBackend = function() { + this.catCounts = {}; + this.wordCounts = {}; +} + +MemoryBackend.prototype = { + async : false, + + incCounts : function(catIncs, wordIncs) { + _(catIncs).each(function(inc, cat) { + this.catCounts[cat] = this.catCounts[cat] + inc || inc; + }, this); + + _(wordIncs).each(function(incs, word) { + this.wordCounts[word] = this.wordCounts[word] || {}; + _(incs).each(function(inc, cat) { + this.wordCounts[word][cat] = this.wordCounts[word][cat] + inc || inc; + }, this); + }, this); + }, + + getCats : function() { + return this.catCounts; + }, + + getWordCounts : function(words, cats) { + return this.wordCounts; + }, + + toJSON : function() { + return {cats: this.catCounts, words: this.wordCounts} + }, + + fromJSON : function(json) { + this.catCounts = json.cats; + this.wordCounts = json.words; + } +} + +exports.z = MemoryBackend; + +/***/ }), + +/***/ 25344: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var redis = __nccwpck_require__(76394), + _ = (__nccwpck_require__(36206)._); + +var RedisBackend = function(options) { + options = options || {}; + var port = options.port || 6379; + var host = options.hostname || "localhost"; + var opts = options.options || {}; + + this.client = function() { + var client = redis.createClient(port, host, opts); + if (options.error) { + client.on('error', options.error); + } + if (options.password) { + client.auth(options.password, options.error); + } + return client; + } + + var name = options.name || Math.floor(Math.random() * 100000); + this.catsKey = 'classifier_bayes_cats_' + name; + this.wordsKey = 'classifier_bayes_words_' + name; + + if (options.db) { + this.client().select(options.db); + } +} + +RedisBackend.prototype = { + async : true, + + key : function(word, cat) { + return word + "____" + cat; // flatten word count hash + }, + + pair : function(key) { + return /(.*)____(.*)/.exec(key).slice(1); + }, + + incCounts : function(catIncs, wordIncs, callback) { + // create new client for each call so we can close each time + var client = this.client(); + var multi = client.multi(); // make multi so we can have one callback + + _(catIncs).each(function(inc, cat) { + multi.hincrby(this.catsKey, cat, inc); + }, this); + + _(wordIncs).each(function(wordCounts, word) { + _(wordCounts).each(function(inc, cat) { + multi.hincrby(this.wordsKey, this.key(word, cat), inc); + }, this); + }, this); + + multi.exec(function(err, ret) { + if (callback) { + callback(ret); + } + client.quit(); + }); + }, + + getCats : function(callback) { + var client = this.client(); + client.hgetall(this.catsKey, function(err, cats) { + _(cats).each(function(val, cat) { + cats[cat] = parseInt(val); + }); + callback(cats); + client.quit(); + }); + }, + + getWordCounts : function(words, cats, callback) { + var keys = _(words).reduce(function(keys, word) { + return keys.concat(_(cats).map(function(count, cat) { + return this.key(word, cat); + },this)); + }, [], this); + + var that = this; + var args = [this.wordsKey].concat(keys); + var client = this.client(); + + client.hmget(args, function(err, vals) { + var counts = {}; + keys.map(function(key, i) { + var pair = that.pair(key); + var word = pair[0], cat = pair[1]; + counts[word] = counts[word] ? counts[word] : {}; + counts[word][cat] = parseInt(vals[i]) || 0; + }); + + callback(counts); + client.quit(); + }); + }, + + toJSON: function(callback) { + var that = this; + this.getCats(function(cats) { + var client = that.client(); + + client.hgetall(that.wordsKey, function(err, wordCounts) { + var words = {}; + for (var key in wordCounts) { + var pair = that.pair(key); + var word = pair[0], cat = pair[1]; + words[word] = words[word] ? words[word] : {}; + words[word][cat] = parseInt(wordCounts[key]) || 0; + } + + callback({cats: cats, words: words}); + client.quit(); + }); + }); + }, + + fromJSON: function(json, callback) { + this.incCounts(json.cats, json.words, callback); + } +} + +exports.D = RedisBackend; + + +/***/ }), + +/***/ 45489: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var _ = (__nccwpck_require__(36206)._); + +var Bayesian = function(options) { + options = options || {} + this.thresholds = options.thresholds || {}; + this.default = options.default || 'unclassified'; + this.weight = options.weight || 1; + this.assumed = options.assumed || 0.5; + + var backend = options.backend || { type: 'memory' }; + switch(backend.type.toLowerCase()) { + case 'redis': + this.backend = new ((__nccwpck_require__(25344)/* .RedisBackend */ .D))(backend.options); + break; + case 'localstorage': + this.backend = new ((__nccwpck_require__(63801)/* .LocalStorageBackend */ .u))(backend.options); + break; + default: + this.backend = new ((__nccwpck_require__(46650)/* .MemoryBackend */ .z))(); + } +} + +Bayesian.prototype = { + getCats : function(callback) { + return this.backend.getCats(callback); + }, + + getWordCounts : function(words, cats, callback) { + return this.backend.getWordCounts(words, cats, callback); + }, + + incDocCounts : function(docs, callback) { + // accumulate all the pending increments + var wordIncs = {}; + var catIncs = {}; + docs.forEach(function(doc) { + var cat = doc.cat; + catIncs[cat] = catIncs[cat] ? catIncs[cat] + 1 : 1; + + var words = this.getWords(doc.doc); + words.forEach(function(word) { + wordIncs[word] = wordIncs[word] || {}; + wordIncs[word][cat] = wordIncs[word][cat] ? wordIncs[word][cat] + 1 : 1; + }, this); + }, this); + + return this.backend.incCounts(catIncs, wordIncs, callback); + }, + + setThresholds : function(thresholds) { + this.thresholds = thresholds; + }, + + getWords : function(doc) { + if (_(doc).isArray()) { + return doc; + } + var words = doc.split(/\W+/); + return _(words).uniq(); + }, + + train : function(doc, cat, callback) { + this.incDocCounts([{doc: doc, cat: cat}], function(err, ret) { + if (callback) { + callback(ret); + } + }); + }, + + trainAll : function(data, callback) { + data = data.map(function(item) { + return {doc: item.input, cat: item.output}; + }); + this.incDocCounts(data, function(err, ret) { + if (callback) { + callback(ret); + } + }); + }, + + wordProb : function(word, cat, cats, counts) { + // times word appears in a doc in this cat / docs in this cat + var prob = (counts[cat] || 0) / cats[cat]; + + // get weighted average with assumed so prob won't be extreme on rare words + var total = _(cats).reduce(function(sum, p, cat) { + return sum + (counts[cat] || 0); + }, 0, this); + return (this.weight * this.assumed + total * prob) / (this.weight + total); + }, + + getCatProbs : function(cats, words, counts) { + var numDocs = _(cats).reduce(function(sum, count) { + return sum + count; + }, 0); + + var probs = {}; + _(cats).each(function(catCount, cat) { + var catProb = (catCount || 0) / numDocs; + + var docProb = _(words).reduce(function(prob, word) { + var wordCounts = counts[word] || {}; + return prob * this.wordProb(word, cat, cats, wordCounts); + }, 1, this); + + // the probability this doc is in this category + probs[cat] = catProb * docProb; + }, this); + return probs; + }, + + getProbs : function(doc, callback) { + var that = this; + this.getCats(function(cats) { + var words = that.getWords(doc); + that.getWordCounts(words, cats, function(counts) { + var probs = that.getCatProbs(cats, words, counts); + callback(probs); + }); + }); + }, + + getProbsSync : function(doc) { + var words = this.getWords(doc); + var cats = this.getCats(); + var counts = this.getWordCounts(words, cats); + return this.getCatProbs(cats, words, counts); + }, + + bestMatch : function(probs) { + var max = _(probs).reduce(function(max, prob, cat) { + return max.prob > prob ? max : {cat: cat, prob: prob}; + }, {prob: 0}); + + var category = max.cat || this.default; + var threshold = this.thresholds[max.cat] || 1; + + _(probs).map(function(prob, cat) { + if (!(cat == max.cat) && prob * threshold > max.prob) { + category = this.default; // not greater than other category by enough + } + }, this); + + return category; + }, + + classify : function(doc, callback) { + if (!this.backend.async) { + return this.classifySync(doc); + } + + var that = this; + this.getProbs(doc, function(probs) { + callback(that.bestMatch(probs)); + }); + }, + + classifySync : function(doc) { + var probs = this.getProbsSync(doc); + return this.bestMatch(probs); + }, + + test : function(data) { + // misclassification error + var error = 0; + data.forEach(function(datum) { + var output = this.classify(datum.input); + error += output == datum.output ? 0 : 1; + }, this); + return error / data.length; + }, + + toJSON : function(callback) { + return this.backend.toJSON(callback); + }, + + fromJSON : function(json, callback) { + this.backend.fromJSON(json, callback); + return this; + } +} + +exports.j = Bayesian; + + +/***/ }), + +/***/ 19413: +/***/ ((module) => { + +/* + * Copyright 2001-2010 Georges Menie (www.menie.org) + * Copyright 2010 Salvatore Sanfilippo (adapted to Redis coding style) + * Copyright 2015 Zihua Li (http://zihua.li) (ported to JavaScript) + * Copyright 2016 Mike Diarmid (http://github.com/salakar) (re-write for performance, ~700% perf inc) + * 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 University of California, Berkeley 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 REGENTS 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 REGENTS AND 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. + */ + +/* CRC16 implementation according to CCITT standards. + * + * Note by @antirez: this is actually the XMODEM CRC 16 algorithm, using the + * following parameters: + * + * Name : "XMODEM", also known as "ZMODEM", "CRC-16/ACORN" + * Width : 16 bit + * Poly : 1021 (That is actually x^16 + x^12 + x^5 + 1) + * Initialization : 0000 + * Reflect Input byte : False + * Reflect Output CRC : False + * Xor constant to output CRC : 0000 + * Output for "123456789" : 31C3 + */ + +var lookup = [ + 0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7, + 0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef, + 0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6, + 0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de, + 0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485, + 0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d, + 0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4, + 0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc, + 0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823, + 0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b, + 0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12, + 0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a, + 0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41, + 0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49, + 0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70, + 0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78, + 0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f, + 0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067, + 0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e, + 0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256, + 0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d, + 0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405, + 0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c, + 0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634, + 0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab, + 0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3, + 0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a, + 0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92, + 0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9, + 0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1, + 0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8, + 0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0 +]; + +/** + * Convert a string to a UTF8 array - faster than via buffer + * @param str + * @returns {Array} + */ +var toUTF8Array = function toUTF8Array(str) { + var char; + var i = 0; + var p = 0; + var utf8 = []; + var len = str.length; + + for (; i < len; i++) { + char = str.charCodeAt(i); + if (char < 128) { + utf8[p++] = char; + } else if (char < 2048) { + utf8[p++] = (char >> 6) | 192; + utf8[p++] = (char & 63) | 128; + } else if ( + ((char & 0xFC00) === 0xD800) && (i + 1) < str.length && + ((str.charCodeAt(i + 1) & 0xFC00) === 0xDC00)) { + char = 0x10000 + ((char & 0x03FF) << 10) + (str.charCodeAt(++i) & 0x03FF); + utf8[p++] = (char >> 18) | 240; + utf8[p++] = ((char >> 12) & 63) | 128; + utf8[p++] = ((char >> 6) & 63) | 128; + utf8[p++] = (char & 63) | 128; + } else { + utf8[p++] = (char >> 12) | 224; + utf8[p++] = ((char >> 6) & 63) | 128; + utf8[p++] = (char & 63) | 128; + } + } + + return utf8; +}; + +/** + * Convert a string into a redis slot hash. + * @param str + * @returns {number} + */ +var generate = module.exports = function generate(str) { + var char; + var i = 0; + var start = -1; + var result = 0; + var resultHash = 0; + var utf8 = typeof str === 'string' ? toUTF8Array(str) : str; + var len = utf8.length; + + while (i < len) { + char = utf8[i++]; + if (start === -1) { + if (char === 0x7B) { + start = i; + } + } else if (char !== 0x7D) { + resultHash = lookup[(char ^ (resultHash >> 8)) & 0xFF] ^ (resultHash << 8); + } else if (i - 1 !== start) { + return resultHash & 0x3FFF; + } + + result = lookup[(char ^ (result >> 8)) & 0xFF] ^ (result << 8); + } + + return result & 0x3FFF; +}; + +/** + * Convert an array of multiple strings into a redis slot hash. + * Returns -1 if one of the keys is not for the same slot as the others + * @param keys + * @returns {number} + */ +module.exports.generateMulti = function generateMulti(keys) { + var i = 1; + var len = keys.length; + var base = generate(keys[0]); + + while (i < len) { + if (generate(keys[i++]) !== base) return -1; + } + + return base; +}; + + +/***/ }), + +/***/ 29862: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var util = __nccwpck_require__(73837); +var Stream = (__nccwpck_require__(12781).Stream); +var DelayedStream = __nccwpck_require__(5809); + +module.exports = CombinedStream; +function CombinedStream() { + this.writable = false; + this.readable = true; + this.dataSize = 0; + this.maxDataSize = 2 * 1024 * 1024; + this.pauseStreams = true; + + this._released = false; + this._streams = []; + this._currentStream = null; + this._insideLoop = false; + this._pendingNext = false; +} +util.inherits(CombinedStream, Stream); + +CombinedStream.create = function(options) { + var combinedStream = new this(); + + options = options || {}; + for (var option in options) { + combinedStream[option] = options[option]; + } + + return combinedStream; +}; + +CombinedStream.isStreamLike = function(stream) { + return (typeof stream !== 'function') + && (typeof stream !== 'string') + && (typeof stream !== 'boolean') + && (typeof stream !== 'number') + && (!Buffer.isBuffer(stream)); +}; + +CombinedStream.prototype.append = function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + + if (isStreamLike) { + if (!(stream instanceof DelayedStream)) { + var newStream = DelayedStream.create(stream, { + maxDataSize: Infinity, + pauseStream: this.pauseStreams, + }); + stream.on('data', this._checkDataSize.bind(this)); + stream = newStream; + } + + this._handleErrors(stream); + + if (this.pauseStreams) { + stream.pause(); + } + } + + this._streams.push(stream); + return this; +}; + +CombinedStream.prototype.pipe = function(dest, options) { + Stream.prototype.pipe.call(this, dest, options); + this.resume(); + return dest; +}; + +CombinedStream.prototype._getNext = function() { + this._currentStream = null; + + if (this._insideLoop) { + this._pendingNext = true; + return; // defer call + } + + this._insideLoop = true; + try { + do { + this._pendingNext = false; + this._realGetNext(); + } while (this._pendingNext); + } finally { + this._insideLoop = false; + } +}; + +CombinedStream.prototype._realGetNext = function() { + var stream = this._streams.shift(); + + + if (typeof stream == 'undefined') { + this.end(); + return; + } + + if (typeof stream !== 'function') { + this._pipeNext(stream); + return; + } + + var getStream = stream; + getStream(function(stream) { + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('data', this._checkDataSize.bind(this)); + this._handleErrors(stream); + } + + this._pipeNext(stream); + }.bind(this)); +}; + +CombinedStream.prototype._pipeNext = function(stream) { + this._currentStream = stream; + + var isStreamLike = CombinedStream.isStreamLike(stream); + if (isStreamLike) { + stream.on('end', this._getNext.bind(this)); + stream.pipe(this, {end: false}); + return; + } + + var value = stream; + this.write(value); + this._getNext(); +}; + +CombinedStream.prototype._handleErrors = function(stream) { + var self = this; + stream.on('error', function(err) { + self._emitError(err); + }); +}; + +CombinedStream.prototype.write = function(data) { + this.emit('data', data); +}; + +CombinedStream.prototype.pause = function() { + if (!this.pauseStreams) { + return; + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.pause) == 'function') this._currentStream.pause(); + this.emit('pause'); +}; + +CombinedStream.prototype.resume = function() { + if (!this._released) { + this._released = true; + this.writable = true; + this._getNext(); + } + + if(this.pauseStreams && this._currentStream && typeof(this._currentStream.resume) == 'function') this._currentStream.resume(); + this.emit('resume'); +}; + +CombinedStream.prototype.end = function() { + this._reset(); + this.emit('end'); +}; + +CombinedStream.prototype.destroy = function() { + this._reset(); + this.emit('close'); +}; + +CombinedStream.prototype._reset = function() { + this.writable = false; + this._streams = []; + this._currentStream = null; +}; + +CombinedStream.prototype._checkDataSize = function() { + this._updateDataSize(); + if (this.dataSize <= this.maxDataSize) { + return; + } + + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.'; + this._emitError(new Error(message)); +}; + +CombinedStream.prototype._updateDataSize = function() { + this.dataSize = 0; + + var self = this; + this._streams.forEach(function(stream) { + if (!stream.dataSize) { + return; + } + + self.dataSize += stream.dataSize; + }); + + if (this._currentStream && this._currentStream.dataSize) { + this.dataSize += this._currentStream.dataSize; + } +}; + +CombinedStream.prototype._emitError = function(err) { + this._reset(); + this.emit('error', err); +}; + + +/***/ }), + +/***/ 28872: +/***/ ((module, exports, __nccwpck_require__) => { + +/* eslint-env browser */ + +/** + * This is the web browser implementation of `debug()`. + */ + +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.storage = localstorage(); +exports.destroy = (() => { + let warned = false; + + return () => { + if (!warned) { + warned = true; + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + }; +})(); + +/** + * Colors. + */ + +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 + * to support "%c" CSS customizations. + * + * 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' || window.process.__nwjs)) { + return true; + } + + // Internet Explorer and Edge do not support colors. + 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) { + args[0] = (this.useColors ? '%c' : '') + + this.namespace + + (this.useColors ? ' %c' : ' ') + + args[0] + + (this.useColors ? '%c ' : ' ') + + '+' + module.exports.humanize(this.diff); + + if (!this.useColors) { + return; + } + + const c = 'color: ' + this.color; + 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 + let index = 0; + let lastC = 0; + args[0].replace(/%[a-zA-Z%]/g, match => { + if (match === '%%') { + return; + } + index++; + 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.debug()` when available. + * No-op when `console.debug` is not a "function". + * If `console.debug` is not available, falls back + * to `console.log`. + * + * @api public + */ +exports.log = console.debug || console.log || (() => {}); + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(namespaces) { + try { + if (namespaces) { + exports.storage.setItem('debug', namespaces); + } else { + exports.storage.removeItem('debug'); + } + } catch (error) { + // Swallow + // XXX (@Qix-) should we be logging these? + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ +function load() { + let r; + 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; +} + +/** + * Localstorage attempts to return the localstorage. + * + * This is necessary because safari throws + * when a user disables cookies/localstorage + * and you attempt to access it. + * + * @return {LocalStorage} + * @api private + */ + +function localstorage() { + try { + // 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 = __nccwpck_require__(52297)(exports); + +const {formatters} = module.exports; + +/** + * 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; + } +}; + + +/***/ }), + +/***/ 52297: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +/** + * 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 = __nccwpck_require__(40030); + createDebug.destroy = destroy; + + Object.keys(env).forEach(key => { + createDebug[key] = env[key]; + }); + + /** + * 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 debug instance to be colored + * @return {Number|String} An ANSI color code for the given namespace + * @api private + */ + function selectColor(namespace) { + let hash = 0; + + for (let 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) { + let prevTime; + let enableOverride = null; + let namespacesCache; + let enabledCache; + + function debug(...args) { + // Disabled? + if (!debug.enabled) { + return; + } + + const self = debug; + + // Set `diff` timestamp + const curr = Number(new Date()); + const 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 + let index = 0; + args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { + // If we encounter an escaped % then don't increase the array index + if (match === '%%') { + return '%'; + } + index++; + const formatter = createDebug.formatters[format]; + if (typeof formatter === 'function') { + const 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); + + const logFn = self.log || createDebug.log; + logFn.apply(self, args); + } + + debug.namespace = namespace; + debug.useColors = createDebug.useColors(); + debug.color = createDebug.selectColor(namespace); + debug.extend = extend; + debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. + + Object.defineProperty(debug, 'enabled', { + enumerable: true, + configurable: false, + get: () => { + if (enableOverride !== null) { + return enableOverride; + } + if (namespacesCache !== createDebug.namespaces) { + namespacesCache = createDebug.namespaces; + enabledCache = createDebug.enabled(namespace); + } + + return enabledCache; + }, + set: v => { + enableOverride = v; + } + }); + + // Env-specific initialization logic for debug instances + if (typeof createDebug.init === 'function') { + createDebug.init(debug); + } + + return debug; + } + + function extend(namespace, delimiter) { + const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); + newDebug.log = this.log; + return newDebug; + } + + /** + * 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.namespaces = namespaces; + + createDebug.names = []; + createDebug.skips = []; + + let i; + const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); + const 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.slice(1) + '$')); + } else { + createDebug.names.push(new RegExp('^' + namespaces + '$')); + } + } + } + + /** + * Disable debug output. + * + * @return {String} namespaces + * @api public + */ + function disable() { + const namespaces = [ + ...createDebug.names.map(toNamespace), + ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) + ].join(','); + createDebug.enable(''); + return namespaces; + } + + /** + * 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; + } + + let i; + let 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; + } + + /** + * Convert regexp to namespace + * + * @param {RegExp} regxep + * @return {String} namespace + * @api private + */ + function toNamespace(regexp) { + return regexp.toString() + .substring(2, regexp.toString().length - 2) + .replace(/\.\*\?$/, '*'); + } + + /** + * Coerce `val`. + * + * @param {Mixed} val + * @return {Mixed} + * @api private + */ + function coerce(val) { + if (val instanceof Error) { + return val.stack || val.message; + } + return val; + } + + /** + * XXX DO NOT USE. This is a temporary stub function. + * XXX It WILL be removed in the next major release. + */ + function destroy() { + console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); + } + + createDebug.enable(createDebug.load()); + + return createDebug; +} + +module.exports = setup; + + +/***/ }), + +/***/ 82539: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/** + * Detect Electron renderer / nwjs process, which is node, but we should + * treat as a browser. + */ + +if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { + module.exports = __nccwpck_require__(28872); +} else { + module.exports = __nccwpck_require__(86636); +} + + +/***/ }), + +/***/ 86636: +/***/ ((module, exports, __nccwpck_require__) => { + +/** + * Module dependencies. + */ + +const tty = __nccwpck_require__(76224); +const util = __nccwpck_require__(73837); + +/** + * This is the Node.js implementation of `debug()`. + */ + +exports.init = init; +exports.log = log; +exports.formatArgs = formatArgs; +exports.save = save; +exports.load = load; +exports.useColors = useColors; +exports.destroy = util.deprecate( + () => {}, + 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' +); + +/** + * 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 + const supportsColor = __nccwpck_require__(19377); + + 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(key => { + return /^debug_/i.test(key); +}).reduce((obj, key) => { + // Camel-case + const prop = key + .substring(6) + .toLowerCase() + .replace(/_([a-z])/g, (_, k) => { + return k.toUpperCase(); + }); + + // Coerce string value into JS value + let 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); + } + + obj[prop] = val; + return obj; +}, {}); + +/** + * Is stdout a TTY? Colored output is enabled when `true`. + */ + +function useColors() { + return 'colors' in exports.inspectOpts ? + Boolean(exports.inspectOpts.colors) : + tty.isatty(process.stderr.fd); +} + +/** + * Adds ANSI color escape codes if enabled. + * + * @api public + */ + +function formatArgs(args) { + const {namespace: name, useColors} = this; + + if (useColors) { + const c = this.color; + const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); + const prefix = ` ${colorCode};1m${name} \u001B[0m`; + + args[0] = prefix + args[0].split('\n').join('\n' + prefix); + args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); + } else { + 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 stderr. + */ + +function log(...args) { + return process.stderr.write(util.format(...args) + '\n'); +} + +/** + * Save `namespaces`. + * + * @param {String} namespaces + * @api private + */ +function save(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; + } +} + +/** + * Load `namespaces`. + * + * @return {String} returns the previously persisted debug modes + * @api private + */ + +function load() { + return process.env.DEBUG; +} + +/** + * Init logic for `debug` instances. + * + * Create a new `inspectOpts` object in case `useColors` is set + * differently for a particular `debug` instance. + */ + +function init(debug) { + debug.inspectOpts = {}; + + const keys = Object.keys(exports.inspectOpts); + for (let i = 0; i < keys.length; i++) { + debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; + } +} + +module.exports = __nccwpck_require__(52297)(exports); + +const {formatters} = module.exports; + +/** + * Map %o to `util.inspect()`, all on a single line. + */ + +formatters.o = function (v) { + this.inspectOpts.colors = this.useColors; + return util.inspect(v, this.inspectOpts) + .split('\n') + .map(str => 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); +}; + + +/***/ }), + +/***/ 5809: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var Stream = (__nccwpck_require__(12781).Stream); +var util = __nccwpck_require__(73837); + +module.exports = DelayedStream; +function DelayedStream() { + this.source = null; + this.dataSize = 0; + this.maxDataSize = 1024 * 1024; + this.pauseStream = true; + + this._maxDataSizeExceeded = false; + this._released = false; + this._bufferedEvents = []; +} +util.inherits(DelayedStream, Stream); + +DelayedStream.create = function(source, options) { + var delayedStream = new this(); + + options = options || {}; + for (var option in options) { + delayedStream[option] = options[option]; + } + + delayedStream.source = source; + + var realEmit = source.emit; + source.emit = function() { + delayedStream._handleEmit(arguments); + return realEmit.apply(source, arguments); + }; + + source.on('error', function() {}); + if (delayedStream.pauseStream) { + source.pause(); + } + + return delayedStream; +}; + +Object.defineProperty(DelayedStream.prototype, 'readable', { + configurable: true, + enumerable: true, + get: function() { + return this.source.readable; + } +}); + +DelayedStream.prototype.setEncoding = function() { + return this.source.setEncoding.apply(this.source, arguments); +}; + +DelayedStream.prototype.resume = function() { + if (!this._released) { + this.release(); + } + + this.source.resume(); +}; + +DelayedStream.prototype.pause = function() { + this.source.pause(); +}; + +DelayedStream.prototype.release = function() { + this._released = true; + + this._bufferedEvents.forEach(function(args) { + this.emit.apply(this, args); + }.bind(this)); + this._bufferedEvents = []; +}; + +DelayedStream.prototype.pipe = function() { + var r = Stream.prototype.pipe.apply(this, arguments); + this.resume(); + return r; +}; + +DelayedStream.prototype._handleEmit = function(args) { + if (this._released) { + this.emit.apply(this, args); + return; + } + + if (args[0] === 'data') { + this.dataSize += args[1].length; + this._checkIfMaxDataSizeExceeded(); + } + + this._bufferedEvents.push(args); +}; + +DelayedStream.prototype._checkIfMaxDataSizeExceeded = function() { + if (this._maxDataSizeExceeded) { + return; + } + + if (this.dataSize <= this.maxDataSize) { + return; + } + + this._maxDataSizeExceeded = true; + var message = + 'DelayedStream#maxDataSize of ' + this.maxDataSize + ' bytes exceeded.' + this.emit('error', new Error(message)); +}; + + +/***/ }), + +/***/ 49043: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +class Deprecation extends Error { + constructor(message) { + super(message); // Maintains proper stack trace (only available on V8) + + /* istanbul ignore next */ + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } + + this.name = 'Deprecation'; + } + +} + +exports.Deprecation = Deprecation; + + +/***/ }), + +/***/ 9661: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var debug; + +module.exports = function () { + if (!debug) { + try { + /* eslint global-require: off */ + debug = __nccwpck_require__(82539)("follow-redirects"); + } + catch (error) { /* */ } + if (typeof debug !== "function") { + debug = function () { /* */ }; + } + } + debug.apply(null, arguments); +}; + + +/***/ }), + +/***/ 85041: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var url = __nccwpck_require__(57310); +var URL = url.URL; +var http = __nccwpck_require__(13685); +var https = __nccwpck_require__(95687); +var Writable = (__nccwpck_require__(12781).Writable); +var assert = __nccwpck_require__(39491); +var debug = __nccwpck_require__(9661); + +// Create handlers that pass events from native requests +var events = ["abort", "aborted", "connect", "error", "socket", "timeout"]; +var eventHandlers = Object.create(null); +events.forEach(function (event) { + eventHandlers[event] = function (arg1, arg2, arg3) { + this._redirectable.emit(event, arg1, arg2, arg3); + }; +}); + +var InvalidUrlError = createErrorType( + "ERR_INVALID_URL", + "Invalid URL", + TypeError +); +// Error types with codes +var RedirectionError = createErrorType( + "ERR_FR_REDIRECTION_FAILURE", + "Redirected request failed" +); +var TooManyRedirectsError = createErrorType( + "ERR_FR_TOO_MANY_REDIRECTS", + "Maximum number of redirects exceeded" +); +var MaxBodyLengthExceededError = createErrorType( + "ERR_FR_MAX_BODY_LENGTH_EXCEEDED", + "Request body larger than maxBodyLength limit" +); +var WriteAfterEndError = createErrorType( + "ERR_STREAM_WRITE_AFTER_END", + "write after end" +); + +// An HTTP(S) request that can be redirected +function RedirectableRequest(options, responseCallback) { + // Initialize the request + Writable.call(this); + this._sanitizeOptions(options); + this._options = options; + this._ended = false; + this._ending = false; + this._redirectCount = 0; + this._redirects = []; + this._requestBodyLength = 0; + this._requestBodyBuffers = []; + + // Attach a callback if passed + if (responseCallback) { + this.on("response", responseCallback); + } + + // React to responses of native requests + var self = this; + this._onNativeResponse = function (response) { + self._processResponse(response); + }; + + // Perform the first request + this._performRequest(); +} +RedirectableRequest.prototype = Object.create(Writable.prototype); + +RedirectableRequest.prototype.abort = function () { + abortRequest(this._currentRequest); + this.emit("abort"); +}; + +// Writes buffered data to the current native request +RedirectableRequest.prototype.write = function (data, encoding, callback) { + // Writing is not allowed if end has been called + if (this._ending) { + throw new WriteAfterEndError(); + } + + // Validate input and shift parameters if necessary + if (!isString(data) && !isBuffer(data)) { + throw new TypeError("data should be a string, Buffer or Uint8Array"); + } + if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Ignore empty buffers, since writing them doesn't invoke the callback + // https://github.com/nodejs/node/issues/22066 + if (data.length === 0) { + if (callback) { + callback(); + } + return; + } + // Only write when we don't exceed the maximum body length + if (this._requestBodyLength + data.length <= this._options.maxBodyLength) { + this._requestBodyLength += data.length; + this._requestBodyBuffers.push({ data: data, encoding: encoding }); + this._currentRequest.write(data, encoding, callback); + } + // Error when we exceed the maximum body length + else { + this.emit("error", new MaxBodyLengthExceededError()); + this.abort(); + } +}; + +// Ends the current native request +RedirectableRequest.prototype.end = function (data, encoding, callback) { + // Shift parameters if necessary + if (isFunction(data)) { + callback = data; + data = encoding = null; + } + else if (isFunction(encoding)) { + callback = encoding; + encoding = null; + } + + // Write data if needed and end + if (!data) { + this._ended = this._ending = true; + this._currentRequest.end(null, null, callback); + } + else { + var self = this; + var currentRequest = this._currentRequest; + this.write(data, encoding, function () { + self._ended = true; + currentRequest.end(null, null, callback); + }); + this._ending = true; + } +}; + +// Sets a header value on the current native request +RedirectableRequest.prototype.setHeader = function (name, value) { + this._options.headers[name] = value; + this._currentRequest.setHeader(name, value); +}; + +// Clears a header value on the current native request +RedirectableRequest.prototype.removeHeader = function (name) { + delete this._options.headers[name]; + this._currentRequest.removeHeader(name); +}; + +// Global timeout for all underlying requests +RedirectableRequest.prototype.setTimeout = function (msecs, callback) { + var self = this; + + // Destroys the socket on timeout + function destroyOnTimeout(socket) { + socket.setTimeout(msecs); + socket.removeListener("timeout", socket.destroy); + socket.addListener("timeout", socket.destroy); + } + + // Sets up a timer to trigger a timeout event + function startTimer(socket) { + if (self._timeout) { + clearTimeout(self._timeout); + } + self._timeout = setTimeout(function () { + self.emit("timeout"); + clearTimer(); + }, msecs); + destroyOnTimeout(socket); + } + + // Stops a timeout from triggering + function clearTimer() { + // Clear the timeout + if (self._timeout) { + clearTimeout(self._timeout); + self._timeout = null; + } + + // Clean up all attached listeners + self.removeListener("abort", clearTimer); + self.removeListener("error", clearTimer); + self.removeListener("response", clearTimer); + if (callback) { + self.removeListener("timeout", callback); + } + if (!self.socket) { + self._currentRequest.removeListener("socket", startTimer); + } + } + + // Attach callback if passed + if (callback) { + this.on("timeout", callback); + } + + // Start the timer if or when the socket is opened + if (this.socket) { + startTimer(this.socket); + } + else { + this._currentRequest.once("socket", startTimer); + } + + // Clean up on events + this.on("socket", destroyOnTimeout); + this.on("abort", clearTimer); + this.on("error", clearTimer); + this.on("response", clearTimer); + + return this; +}; + +// Proxy all other public ClientRequest methods +[ + "flushHeaders", "getHeader", + "setNoDelay", "setSocketKeepAlive", +].forEach(function (method) { + RedirectableRequest.prototype[method] = function (a, b) { + return this._currentRequest[method](a, b); + }; +}); + +// Proxy all public ClientRequest properties +["aborted", "connection", "socket"].forEach(function (property) { + Object.defineProperty(RedirectableRequest.prototype, property, { + get: function () { return this._currentRequest[property]; }, + }); +}); + +RedirectableRequest.prototype._sanitizeOptions = function (options) { + // Ensure headers are always present + if (!options.headers) { + options.headers = {}; + } + + // Since http.request treats host as an alias of hostname, + // but the url module interprets host as hostname plus port, + // eliminate the host property to avoid confusion. + if (options.host) { + // Use hostname if set, because it has precedence + if (!options.hostname) { + options.hostname = options.host; + } + delete options.host; + } + + // Complete the URL object when necessary + if (!options.pathname && options.path) { + var searchPos = options.path.indexOf("?"); + if (searchPos < 0) { + options.pathname = options.path; + } + else { + options.pathname = options.path.substring(0, searchPos); + options.search = options.path.substring(searchPos); + } + } +}; + + +// Executes the next native request (initial or redirect) +RedirectableRequest.prototype._performRequest = function () { + // Load the native protocol + var protocol = this._options.protocol; + var nativeProtocol = this._options.nativeProtocols[protocol]; + if (!nativeProtocol) { + this.emit("error", new TypeError("Unsupported protocol " + protocol)); + return; + } + + // If specified, use the agent corresponding to the protocol + // (HTTP and HTTPS use different types of agents) + if (this._options.agents) { + var scheme = protocol.slice(0, -1); + this._options.agent = this._options.agents[scheme]; + } + + // Create the native request and set up its event handlers + var request = this._currentRequest = + nativeProtocol.request(this._options, this._onNativeResponse); + request._redirectable = this; + for (var event of events) { + request.on(event, eventHandlers[event]); + } + + // RFC7230§5.3.1: When making a request directly to an origin server, […] + // a client MUST send only the absolute path […] as the request-target. + this._currentUrl = /^\//.test(this._options.path) ? + url.format(this._options) : + // When making a request to a proxy, […] + // a client MUST send the target URI in absolute-form […]. + this._options.path; + + // End a redirected request + // (The first request must be ended explicitly with RedirectableRequest#end) + if (this._isRedirect) { + // Write the request entity and end + var i = 0; + var self = this; + var buffers = this._requestBodyBuffers; + (function writeNext(error) { + // Only write if this request has not been redirected yet + /* istanbul ignore else */ + if (request === self._currentRequest) { + // Report any write errors + /* istanbul ignore if */ + if (error) { + self.emit("error", error); + } + // Write the next buffer if there are still left + else if (i < buffers.length) { + var buffer = buffers[i++]; + /* istanbul ignore else */ + if (!request.finished) { + request.write(buffer.data, buffer.encoding, writeNext); + } + } + // End the request if `end` has been called on us + else if (self._ended) { + request.end(); + } + } + }()); + } +}; + +// Processes a response from the current native request +RedirectableRequest.prototype._processResponse = function (response) { + // Store the redirected response + var statusCode = response.statusCode; + if (this._options.trackRedirects) { + this._redirects.push({ + url: this._currentUrl, + headers: response.headers, + statusCode: statusCode, + }); + } + + // RFC7231§6.4: The 3xx (Redirection) class of status code indicates + // that further action needs to be taken by the user agent in order to + // fulfill the request. If a Location header field is provided, + // the user agent MAY automatically redirect its request to the URI + // referenced by the Location field value, + // even if the specific status code is not understood. + + // If the response is not a redirect; return it as-is + var location = response.headers.location; + if (!location || this._options.followRedirects === false || + statusCode < 300 || statusCode >= 400) { + response.responseUrl = this._currentUrl; + response.redirects = this._redirects; + this.emit("response", response); + + // Clean up + this._requestBodyBuffers = []; + return; + } + + // The response is a redirect, so abort the current request + abortRequest(this._currentRequest); + // Discard the remainder of the response to avoid waiting for data + response.destroy(); + + // RFC7231§6.4: A client SHOULD detect and intervene + // in cyclical redirections (i.e., "infinite" redirection loops). + if (++this._redirectCount > this._options.maxRedirects) { + this.emit("error", new TooManyRedirectsError()); + return; + } + + // Store the request headers if applicable + var requestHeaders; + var beforeRedirect = this._options.beforeRedirect; + if (beforeRedirect) { + requestHeaders = Object.assign({ + // The Host header was set by nativeProtocol.request + Host: response.req.getHeader("host"), + }, this._options.headers); + } + + // RFC7231§6.4: Automatic redirection needs to done with + // care for methods not known to be safe, […] + // RFC7231§6.4.2–3: For historical reasons, a user agent MAY change + // the request method from POST to GET for the subsequent request. + var method = this._options.method; + if ((statusCode === 301 || statusCode === 302) && this._options.method === "POST" || + // RFC7231§6.4.4: The 303 (See Other) status code indicates that + // the server is redirecting the user agent to a different resource […] + // A user agent can perform a retrieval request targeting that URI + // (a GET or HEAD request if using HTTP) […] + (statusCode === 303) && !/^(?:GET|HEAD)$/.test(this._options.method)) { + this._options.method = "GET"; + // Drop a possible entity and headers related to it + this._requestBodyBuffers = []; + removeMatchingHeaders(/^content-/i, this._options.headers); + } + + // Drop the Host header, as the redirect might lead to a different host + var currentHostHeader = removeMatchingHeaders(/^host$/i, this._options.headers); + + // If the redirect is relative, carry over the host of the last request + var currentUrlParts = url.parse(this._currentUrl); + var currentHost = currentHostHeader || currentUrlParts.host; + var currentUrl = /^\w+:/.test(location) ? this._currentUrl : + url.format(Object.assign(currentUrlParts, { host: currentHost })); + + // Determine the URL of the redirection + var redirectUrl; + try { + redirectUrl = url.resolve(currentUrl, location); + } + catch (cause) { + this.emit("error", new RedirectionError({ cause: cause })); + return; + } + + // Create the redirected request + debug("redirecting to", redirectUrl); + this._isRedirect = true; + var redirectUrlParts = url.parse(redirectUrl); + Object.assign(this._options, redirectUrlParts); + + // Drop confidential headers when redirecting to a less secure protocol + // or to a different domain that is not a superdomain + if (redirectUrlParts.protocol !== currentUrlParts.protocol && + redirectUrlParts.protocol !== "https:" || + redirectUrlParts.host !== currentHost && + !isSubdomain(redirectUrlParts.host, currentHost)) { + removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers); + } + + // Evaluate the beforeRedirect callback + if (isFunction(beforeRedirect)) { + var responseDetails = { + headers: response.headers, + statusCode: statusCode, + }; + var requestDetails = { + url: currentUrl, + method: method, + headers: requestHeaders, + }; + try { + beforeRedirect(this._options, responseDetails, requestDetails); + } + catch (err) { + this.emit("error", err); + return; + } + this._sanitizeOptions(this._options); + } + + // Perform the redirected request + try { + this._performRequest(); + } + catch (cause) { + this.emit("error", new RedirectionError({ cause: cause })); + } +}; + +// Wraps the key/value object of protocols with redirect functionality +function wrap(protocols) { + // Default settings + var exports = { + maxRedirects: 21, + maxBodyLength: 10 * 1024 * 1024, + }; + + // Wrap each protocol + var nativeProtocols = {}; + Object.keys(protocols).forEach(function (scheme) { + var protocol = scheme + ":"; + var nativeProtocol = nativeProtocols[protocol] = protocols[scheme]; + var wrappedProtocol = exports[scheme] = Object.create(nativeProtocol); + + // Executes a request, following redirects + function request(input, options, callback) { + // Parse parameters + if (isString(input)) { + var parsed; + try { + parsed = urlToOptions(new URL(input)); + } + catch (err) { + /* istanbul ignore next */ + parsed = url.parse(input); + } + if (!isString(parsed.protocol)) { + throw new InvalidUrlError({ input }); + } + input = parsed; + } + else if (URL && (input instanceof URL)) { + input = urlToOptions(input); + } + else { + callback = options; + options = input; + input = { protocol: protocol }; + } + if (isFunction(options)) { + callback = options; + options = null; + } + + // Set defaults + options = Object.assign({ + maxRedirects: exports.maxRedirects, + maxBodyLength: exports.maxBodyLength, + }, input, options); + options.nativeProtocols = nativeProtocols; + if (!isString(options.host) && !isString(options.hostname)) { + options.hostname = "::1"; + } + + assert.equal(options.protocol, protocol, "protocol mismatch"); + debug("options", options); + return new RedirectableRequest(options, callback); + } + + // Executes a GET request, following redirects + function get(input, options, callback) { + var wrappedRequest = wrappedProtocol.request(input, options, callback); + wrappedRequest.end(); + return wrappedRequest; + } + + // Expose the properties on the wrapped protocol + Object.defineProperties(wrappedProtocol, { + request: { value: request, configurable: true, enumerable: true, writable: true }, + get: { value: get, configurable: true, enumerable: true, writable: true }, + }); + }); + return exports; +} + +/* istanbul ignore next */ +function noop() { /* empty */ } + +// from https://github.com/nodejs/node/blob/master/lib/internal/url.js +function urlToOptions(urlObject) { + var options = { + protocol: urlObject.protocol, + hostname: urlObject.hostname.startsWith("[") ? + /* istanbul ignore next */ + urlObject.hostname.slice(1, -1) : + urlObject.hostname, + hash: urlObject.hash, + search: urlObject.search, + pathname: urlObject.pathname, + path: urlObject.pathname + urlObject.search, + href: urlObject.href, + }; + if (urlObject.port !== "") { + options.port = Number(urlObject.port); + } + return options; +} + +function removeMatchingHeaders(regex, headers) { + var lastValue; + for (var header in headers) { + if (regex.test(header)) { + lastValue = headers[header]; + delete headers[header]; + } + } + return (lastValue === null || typeof lastValue === "undefined") ? + undefined : String(lastValue).trim(); +} + +function createErrorType(code, message, baseClass) { + // Create constructor + function CustomError(properties) { + Error.captureStackTrace(this, this.constructor); + Object.assign(this, properties || {}); + this.code = code; + this.message = this.cause ? message + ": " + this.cause.message : message; + } + + // Attach constructor and set default properties + CustomError.prototype = new (baseClass || Error)(); + CustomError.prototype.constructor = CustomError; + CustomError.prototype.name = "Error [" + code + "]"; + return CustomError; +} + +function abortRequest(request) { + for (var event of events) { + request.removeListener(event, eventHandlers[event]); + } + request.on("error", noop); + request.abort(); +} + +function isSubdomain(subdomain, domain) { + assert(isString(subdomain) && isString(domain)); + var dot = subdomain.length - domain.length - 1; + return dot > 0 && subdomain[dot] === "." && subdomain.endsWith(domain); +} + +function isString(value) { + return typeof value === "string" || value instanceof String; +} + +function isFunction(value) { + return typeof value === "function"; +} + +function isBuffer(value) { + return typeof value === "object" && ("length" in value); +} + +// Exports +module.exports = wrap({ http: http, https: https }); +module.exports.wrap = wrap; + + +/***/ }), + +/***/ 41851: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var CombinedStream = __nccwpck_require__(29862); +var util = __nccwpck_require__(73837); +var path = __nccwpck_require__(71017); +var http = __nccwpck_require__(13685); +var https = __nccwpck_require__(95687); +var parseUrl = (__nccwpck_require__(57310).parse); +var fs = __nccwpck_require__(57147); +var Stream = (__nccwpck_require__(12781).Stream); +var mime = __nccwpck_require__(28498); +var asynckit = __nccwpck_require__(59797); +var populate = __nccwpck_require__(21181); + +// Public API +module.exports = FormData; + +// make it a Stream +util.inherits(FormData, CombinedStream); + +/** + * Create readable "multipart/form-data" streams. + * Can be used to submit forms + * and file uploads to other web applications. + * + * @constructor + * @param {Object} options - Properties to be added/overriden for FormData and CombinedStream + */ +function FormData(options) { + if (!(this instanceof FormData)) { + return new FormData(options); + } + + this._overheadLength = 0; + this._valueLength = 0; + this._valuesToMeasure = []; + + CombinedStream.call(this); + + options = options || {}; + for (var option in options) { + this[option] = options[option]; + } +} + +FormData.LINE_BREAK = '\r\n'; +FormData.DEFAULT_CONTENT_TYPE = 'application/octet-stream'; + +FormData.prototype.append = function(field, value, options) { + + options = options || {}; + + // allow filename as single option + if (typeof options == 'string') { + options = {filename: options}; + } + + var append = CombinedStream.prototype.append.bind(this); + + // all that streamy business can't handle numbers + if (typeof value == 'number') { + value = '' + value; + } + + // https://github.com/felixge/node-form-data/issues/38 + if (util.isArray(value)) { + // Please convert your array into string + // the way web server expects it + this._error(new Error('Arrays are not supported.')); + return; + } + + var header = this._multiPartHeader(field, value, options); + var footer = this._multiPartFooter(); + + append(header); + append(value); + append(footer); + + // pass along options.knownLength + this._trackLength(header, value, options); +}; + +FormData.prototype._trackLength = function(header, value, options) { + var valueLength = 0; + + // used w/ getLengthSync(), when length is known. + // e.g. for streaming directly from a remote server, + // w/ a known file a size, and not wanting to wait for + // incoming file to finish to get its size. + if (options.knownLength != null) { + valueLength += +options.knownLength; + } else if (Buffer.isBuffer(value)) { + valueLength = value.length; + } else if (typeof value === 'string') { + valueLength = Buffer.byteLength(value); + } + + this._valueLength += valueLength; + + // @check why add CRLF? does this account for custom/multiple CRLFs? + this._overheadLength += + Buffer.byteLength(header) + + FormData.LINE_BREAK.length; + + // empty or either doesn't have path or not an http response or not a stream + if (!value || ( !value.path && !(value.readable && value.hasOwnProperty('httpVersion')) && !(value instanceof Stream))) { + return; + } + + // no need to bother with the length + if (!options.knownLength) { + this._valuesToMeasure.push(value); + } +}; + +FormData.prototype._lengthRetriever = function(value, callback) { + + if (value.hasOwnProperty('fd')) { + + // take read range into a account + // `end` = Infinity –> read file till the end + // + // TODO: Looks like there is bug in Node fs.createReadStream + // it doesn't respect `end` options without `start` options + // Fix it when node fixes it. + // https://github.com/joyent/node/issues/7819 + if (value.end != undefined && value.end != Infinity && value.start != undefined) { + + // when end specified + // no need to calculate range + // inclusive, starts with 0 + callback(null, value.end + 1 - (value.start ? value.start : 0)); + + // not that fast snoopy + } else { + // still need to fetch file size from fs + fs.stat(value.path, function(err, stat) { + + var fileSize; + + if (err) { + callback(err); + return; + } + + // update final size based on the range options + fileSize = stat.size - (value.start ? value.start : 0); + callback(null, fileSize); + }); + } + + // or http response + } else if (value.hasOwnProperty('httpVersion')) { + callback(null, +value.headers['content-length']); + + // or request stream http://github.com/mikeal/request + } else if (value.hasOwnProperty('httpModule')) { + // wait till response come back + value.on('response', function(response) { + value.pause(); + callback(null, +response.headers['content-length']); + }); + value.resume(); + + // something else + } else { + callback('Unknown stream'); + } +}; + +FormData.prototype._multiPartHeader = function(field, value, options) { + // custom header specified (as string)? + // it becomes responsible for boundary + // (e.g. to handle extra CRLFs on .NET servers) + if (typeof options.header == 'string') { + return options.header; + } + + var contentDisposition = this._getContentDisposition(value, options); + var contentType = this._getContentType(value, options); + + var contents = ''; + var headers = { + // add custom disposition as third element or keep it two elements if not + 'Content-Disposition': ['form-data', 'name="' + field + '"'].concat(contentDisposition || []), + // if no content type. allow it to be empty array + 'Content-Type': [].concat(contentType || []) + }; + + // allow custom headers. + if (typeof options.header == 'object') { + populate(headers, options.header); + } + + var header; + for (var prop in headers) { + if (!headers.hasOwnProperty(prop)) continue; + header = headers[prop]; + + // skip nullish headers. + if (header == null) { + continue; + } + + // convert all headers to arrays. + if (!Array.isArray(header)) { + header = [header]; + } + + // add non-empty headers. + if (header.length) { + contents += prop + ': ' + header.join('; ') + FormData.LINE_BREAK; + } + } + + return '--' + this.getBoundary() + FormData.LINE_BREAK + contents + FormData.LINE_BREAK; +}; + +FormData.prototype._getContentDisposition = function(value, options) { + + var filename + , contentDisposition + ; + + if (typeof options.filepath === 'string') { + // custom filepath for relative paths + filename = path.normalize(options.filepath).replace(/\\/g, '/'); + } else if (options.filename || value.name || value.path) { + // custom filename take precedence + // formidable and the browser add a name property + // fs- and request- streams have path property + filename = path.basename(options.filename || value.name || value.path); + } else if (value.readable && value.hasOwnProperty('httpVersion')) { + // or try http response + filename = path.basename(value.client._httpMessage.path || ''); + } + + if (filename) { + contentDisposition = 'filename="' + filename + '"'; + } + + return contentDisposition; +}; + +FormData.prototype._getContentType = function(value, options) { + + // use custom content-type above all + var contentType = options.contentType; + + // or try `name` from formidable, browser + if (!contentType && value.name) { + contentType = mime.lookup(value.name); + } + + // or try `path` from fs-, request- streams + if (!contentType && value.path) { + contentType = mime.lookup(value.path); + } + + // or if it's http-reponse + if (!contentType && value.readable && value.hasOwnProperty('httpVersion')) { + contentType = value.headers['content-type']; + } + + // or guess it from the filepath or filename + if (!contentType && (options.filepath || options.filename)) { + contentType = mime.lookup(options.filepath || options.filename); + } + + // fallback to the default content type if `value` is not simple value + if (!contentType && typeof value == 'object') { + contentType = FormData.DEFAULT_CONTENT_TYPE; + } + + return contentType; +}; + +FormData.prototype._multiPartFooter = function() { + return function(next) { + var footer = FormData.LINE_BREAK; + + var lastPart = (this._streams.length === 0); + if (lastPart) { + footer += this._lastBoundary(); + } + + next(footer); + }.bind(this); +}; + +FormData.prototype._lastBoundary = function() { + return '--' + this.getBoundary() + '--' + FormData.LINE_BREAK; +}; + +FormData.prototype.getHeaders = function(userHeaders) { + var header; + var formHeaders = { + 'content-type': 'multipart/form-data; boundary=' + this.getBoundary() + }; + + for (header in userHeaders) { + if (userHeaders.hasOwnProperty(header)) { + formHeaders[header.toLowerCase()] = userHeaders[header]; + } + } + + return formHeaders; +}; + +FormData.prototype.setBoundary = function(boundary) { + this._boundary = boundary; +}; + +FormData.prototype.getBoundary = function() { + if (!this._boundary) { + this._generateBoundary(); + } + + return this._boundary; +}; + +FormData.prototype.getBuffer = function() { + var dataBuffer = new Buffer.alloc( 0 ); + var boundary = this.getBoundary(); + + // Create the form content. Add Line breaks to the end of data. + for (var i = 0, len = this._streams.length; i < len; i++) { + if (typeof this._streams[i] !== 'function') { + + // Add content to the buffer. + if(Buffer.isBuffer(this._streams[i])) { + dataBuffer = Buffer.concat( [dataBuffer, this._streams[i]]); + }else { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(this._streams[i])]); + } + + // Add break after content. + if (typeof this._streams[i] !== 'string' || this._streams[i].substring( 2, boundary.length + 2 ) !== boundary) { + dataBuffer = Buffer.concat( [dataBuffer, Buffer.from(FormData.LINE_BREAK)] ); + } + } + } + + // Add the footer and return the Buffer object. + return Buffer.concat( [dataBuffer, Buffer.from(this._lastBoundary())] ); +}; + +FormData.prototype._generateBoundary = function() { + // This generates a 50 character boundary similar to those used by Firefox. + // They are optimized for boyer-moore parsing. + var boundary = '--------------------------'; + for (var i = 0; i < 24; i++) { + boundary += Math.floor(Math.random() * 10).toString(16); + } + + this._boundary = boundary; +}; + +// Note: getLengthSync DOESN'T calculate streams length +// As workaround one can calculate file size manually +// and add it as knownLength option +FormData.prototype.getLengthSync = function() { + var knownLength = this._overheadLength + this._valueLength; + + // Don't get confused, there are 3 "internal" streams for each keyval pair + // so it basically checks if there is any value added to the form + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + // https://github.com/form-data/form-data/issues/40 + if (!this.hasKnownLength()) { + // Some async length retrievers are present + // therefore synchronous length calculation is false. + // Please use getLength(callback) to get proper length + this._error(new Error('Cannot calculate proper length in synchronous way.')); + } + + return knownLength; +}; + +// Public API to check if length of added values is known +// https://github.com/form-data/form-data/issues/196 +// https://github.com/form-data/form-data/issues/262 +FormData.prototype.hasKnownLength = function() { + var hasKnownLength = true; + + if (this._valuesToMeasure.length) { + hasKnownLength = false; + } + + return hasKnownLength; +}; + +FormData.prototype.getLength = function(cb) { + var knownLength = this._overheadLength + this._valueLength; + + if (this._streams.length) { + knownLength += this._lastBoundary().length; + } + + if (!this._valuesToMeasure.length) { + process.nextTick(cb.bind(this, null, knownLength)); + return; + } + + asynckit.parallel(this._valuesToMeasure, this._lengthRetriever, function(err, values) { + if (err) { + cb(err); + return; + } + + values.forEach(function(length) { + knownLength += length; + }); + + cb(null, knownLength); + }); +}; + +FormData.prototype.submit = function(params, cb) { + var request + , options + , defaults = {method: 'post'} + ; + + // parse provided url if it's string + // or treat it as options object + if (typeof params == 'string') { + + params = parseUrl(params); + options = populate({ + port: params.port, + path: params.pathname, + host: params.hostname, + protocol: params.protocol + }, defaults); + + // use custom params + } else { + + options = populate(params, defaults); + // if no port provided use default one + if (!options.port) { + options.port = options.protocol == 'https:' ? 443 : 80; + } + } + + // put that good code in getHeaders to some use + options.headers = this.getHeaders(params.headers); + + // https if specified, fallback to http in any other case + if (options.protocol == 'https:') { + request = https.request(options); + } else { + request = http.request(options); + } + + // get content length and fire away + this.getLength(function(err, length) { + if (err && err !== 'Unknown stream') { + this._error(err); + return; + } + + // add content length + if (length) { + request.setHeader('Content-Length', length); + } + + this.pipe(request); + if (cb) { + var onResponse; + + var callback = function (error, responce) { + request.removeListener('error', callback); + request.removeListener('response', onResponse); + + return cb.call(this, error, responce); + }; + + onResponse = callback.bind(this, null); + + request.on('error', callback); + request.on('response', onResponse); + } + }.bind(this)); + + return request; +}; + +FormData.prototype._error = function(err) { + if (!this.error) { + this.error = err; + this.pause(); + this.emit('error', err); + } +}; + +FormData.prototype.toString = function () { + return '[object FormData]'; +}; + + +/***/ }), + +/***/ 21181: +/***/ ((module) => { + +// populates missing values +module.exports = function(dst, src) { + + Object.keys(src).forEach(function(prop) + { + dst[prop] = dst[prop] || src[prop]; + }); + + return dst; +}; + + +/***/ }), + +/***/ 27942: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const Pool = __nccwpck_require__(72875); +const Deque = __nccwpck_require__(36131); +const PriorityQueue = __nccwpck_require__(49532); +const DefaultEvictor = __nccwpck_require__(36071); +module.exports = { + Pool: Pool, + Deque: Deque, + PriorityQueue: PriorityQueue, + DefaultEvictor: DefaultEvictor, + createPool: function(factory, config) { + return new Pool(DefaultEvictor, Deque, PriorityQueue, factory, config); + } +}; + + +/***/ }), + +/***/ 36071: +/***/ ((module) => { + +"use strict"; + + +class DefaultEvictor { + evict(config, pooledResource, availableObjectsCount) { + const idleTime = Date.now() - pooledResource.lastIdleTime; + + if ( + config.softIdleTimeoutMillis > 0 && + config.softIdleTimeoutMillis < idleTime && + config.min < availableObjectsCount + ) { + return true; + } + + if (config.idleTimeoutMillis < idleTime) { + return true; + } + + return false; + } +} + +module.exports = DefaultEvictor; + + +/***/ }), + +/***/ 71186: +/***/ ((module) => { + +"use strict"; + + +/** + * This is apparently a bit like a Jquery deferred, hence the name + */ + +class Deferred { + constructor(Promise) { + this._state = Deferred.PENDING; + this._resolve = undefined; + this._reject = undefined; + + this._promise = new Promise((resolve, reject) => { + this._resolve = resolve; + this._reject = reject; + }); + } + + get state() { + return this._state; + } + + get promise() { + return this._promise; + } + + reject(reason) { + if (this._state !== Deferred.PENDING) { + return; + } + this._state = Deferred.REJECTED; + this._reject(reason); + } + + resolve(value) { + if (this._state !== Deferred.PENDING) { + return; + } + this._state = Deferred.FULFILLED; + this._resolve(value); + } +} + +// TODO: should these really live here? or be a seperate 'state' enum +Deferred.PENDING = "PENDING"; +Deferred.FULFILLED = "FULFILLED"; +Deferred.REJECTED = "REJECTED"; + +module.exports = Deferred; + + +/***/ }), + +/***/ 36131: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const DoublyLinkedList = __nccwpck_require__(30674); +const DequeIterator = __nccwpck_require__(36884); +/** + * DoublyLinkedList backed double ended queue + * implements just enough to keep the Pool + */ +class Deque { + constructor() { + this._list = new DoublyLinkedList(); + } + + /** + * removes and returns the first element from the queue + * @return {any} [description] + */ + shift() { + if (this.length === 0) { + return undefined; + } + + const node = this._list.head; + this._list.remove(node); + + return node.data; + } + + /** + * adds one elemts to the beginning of the queue + * @param {any} element [description] + * @return {any} [description] + */ + unshift(element) { + const node = DoublyLinkedList.createNode(element); + + this._list.insertBeginning(node); + } + + /** + * adds one to the end of the queue + * @param {any} element [description] + * @return {any} [description] + */ + push(element) { + const node = DoublyLinkedList.createNode(element); + + this._list.insertEnd(node); + } + + /** + * removes and returns the last element from the queue + */ + pop() { + if (this.length === 0) { + return undefined; + } + + const node = this._list.tail; + this._list.remove(node); + + return node.data; + } + + [Symbol.iterator]() { + return new DequeIterator(this._list); + } + + iterator() { + return new DequeIterator(this._list); + } + + reverseIterator() { + return new DequeIterator(this._list, true); + } + + /** + * get a reference to the item at the head of the queue + * @return {any} [description] + */ + get head() { + if (this.length === 0) { + return undefined; + } + const node = this._list.head; + return node.data; + } + + /** + * get a reference to the item at the tail of the queue + * @return {any} [description] + */ + get tail() { + if (this.length === 0) { + return undefined; + } + const node = this._list.tail; + return node.data; + } + + get length() { + return this._list.length; + } +} + +module.exports = Deque; + + +/***/ }), + +/***/ 36884: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const DoublyLinkedListIterator = __nccwpck_require__(85536); +/** + * Thin wrapper around an underlying DDL iterator + */ +class DequeIterator extends DoublyLinkedListIterator { + next() { + const result = super.next(); + + // unwrap the node... + if (result.value) { + result.value = result.value.data; + } + + return result; + } +} + +module.exports = DequeIterator; + + +/***/ }), + +/***/ 30674: +/***/ ((module) => { + +"use strict"; + + +/** + * A Doubly Linked List, because there aren't enough in the world... + * this is pretty much a direct JS port of the one wikipedia + * https://en.wikipedia.org/wiki/Doubly_linked_list + * + * For most usage 'insertBeginning' and 'insertEnd' should be enough + * + * nodes are expected to something like a POJSO like + * { + * prev: null, + * next: null, + * something: 'whatever you like' + * } + */ +class DoublyLinkedList { + constructor() { + this.head = null; + this.tail = null; + this.length = 0; + } + + insertBeginning(node) { + if (this.head === null) { + this.head = node; + this.tail = node; + node.prev = null; + node.next = null; + this.length++; + } else { + this.insertBefore(this.head, node); + } + } + + insertEnd(node) { + if (this.tail === null) { + this.insertBeginning(node); + } else { + this.insertAfter(this.tail, node); + } + } + + insertAfter(node, newNode) { + newNode.prev = node; + newNode.next = node.next; + if (node.next === null) { + this.tail = newNode; + } else { + node.next.prev = newNode; + } + node.next = newNode; + this.length++; + } + + insertBefore(node, newNode) { + newNode.prev = node.prev; + newNode.next = node; + if (node.prev === null) { + this.head = newNode; + } else { + node.prev.next = newNode; + } + node.prev = newNode; + this.length++; + } + + remove(node) { + if (node.prev === null) { + this.head = node.next; + } else { + node.prev.next = node.next; + } + if (node.next === null) { + this.tail = node.prev; + } else { + node.next.prev = node.prev; + } + node.prev = null; + node.next = null; + this.length--; + } + + // FIXME: this should not live here and has become a dumping ground... + static createNode(data) { + return { + prev: null, + next: null, + data: data + }; + } +} + +module.exports = DoublyLinkedList; + + +/***/ }), + +/***/ 85536: +/***/ ((module) => { + +"use strict"; + + +/** + * Creates an interator for a DoublyLinkedList starting at the given node + * It's internal cursor will remains relative to the last "iterated" node as that + * node moves through the list until it either iterates to the end of the list, + * or the the node it's tracking is removed from the list. Until the first 'next' + * call it tracks the head/tail of the linked list. This means that one can create + * an iterator on an empty list, then add nodes, and then the iterator will follow + * those nodes. Because the DoublyLinkedList nodes don't track their owning "list" and + * it's highly inefficient to walk the list for every iteration, the iterator won't know + * if the node has been detached from one List and added to another list, or if the iterator + * + * The created object is an es6 compatible iterator + */ +class DoublyLinkedListIterator { + /** + * @param {Object} doublyLinkedList a node that is part of a doublyLinkedList + * @param {Boolean} [reverse=false] is this a reverse iterator? default: false + */ + constructor(doublyLinkedList, reverse) { + this._list = doublyLinkedList; + // NOTE: these key names are tied to the DoublyLinkedListIterator + this._direction = reverse === true ? "prev" : "next"; + this._startPosition = reverse === true ? "tail" : "head"; + this._started = false; + this._cursor = null; + this._done = false; + } + + _start() { + this._cursor = this._list[this._startPosition]; + this._started = true; + } + + _advanceCursor() { + if (this._started === false) { + this._started = true; + this._cursor = this._list[this._startPosition]; + return; + } + this._cursor = this._cursor[this._direction]; + } + + reset() { + this._done = false; + this._started = false; + this._cursor = null; + } + + remove() { + if ( + this._started === false || + this._done === true || + this._isCursorDetached() + ) { + return false; + } + this._list.remove(this._cursor); + } + + next() { + if (this._done === true) { + return { done: true }; + } + + this._advanceCursor(); + + // if there is no node at the cursor or the node at the cursor is no longer part of + // a doubly linked list then we are done/finished/kaput + if (this._cursor === null || this._isCursorDetached()) { + this._done = true; + return { done: true }; + } + + return { + value: this._cursor, + done: false + }; + } + + /** + * Is the node detached from a list? + * NOTE: you can trick/bypass/confuse this check by removing a node from one DoublyLinkedList + * and adding it to another. + * TODO: We can make this smarter by checking the direction of travel and only checking + * the required next/prev/head/tail rather than all of them + * @return {Boolean} [description] + */ + _isCursorDetached() { + return ( + this._cursor.prev === null && + this._cursor.next === null && + this._list.tail !== this._cursor && + this._list.head !== this._cursor + ); + } +} + +module.exports = DoublyLinkedListIterator; + + +/***/ }), + +/***/ 72875: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const EventEmitter = (__nccwpck_require__(82361).EventEmitter); + +const factoryValidator = __nccwpck_require__(18904); +const PoolOptions = __nccwpck_require__(10246); +const ResourceRequest = __nccwpck_require__(54517); +const ResourceLoan = __nccwpck_require__(63711); +const PooledResource = __nccwpck_require__(66076); +const DefaultEvictor = __nccwpck_require__(36071); +const Deque = __nccwpck_require__(36131); +const Deferred = __nccwpck_require__(71186); +const PriorityQueue = __nccwpck_require__(49532); +const DequeIterator = __nccwpck_require__(36884); + +const reflector = (__nccwpck_require__(74497)/* .reflector */ .W); + +/** + * TODO: move me + */ +const FACTORY_CREATE_ERROR = "factoryCreateError"; +const FACTORY_DESTROY_ERROR = "factoryDestroyError"; + +class Pool extends EventEmitter { + /** + * Generate an Object pool with a specified `factory` and `config`. + * + * @param {typeof DefaultEvictor} Evictor + * @param {typeof Deque} Deque + * @param {typeof PriorityQueue} PriorityQueue + * @param {Object} factory + * Factory to be used for generating and destroying the items. + * @param {Function} factory.create + * Should create the item to be acquired, + * and call it's first callback argument with the generated item as it's argument. + * @param {Function} factory.destroy + * Should gently close any resources that the item is using. + * Called before the items is destroyed. + * @param {Function} factory.validate + * Test if a resource is still valid .Should return a promise that resolves to a boolean, true if resource is still valid and false + * If it should be removed from pool. + * @param {Object} options + */ + constructor(Evictor, Deque, PriorityQueue, factory, options) { + super(); + + factoryValidator(factory); + + this._config = new PoolOptions(options); + + // TODO: fix up this ugly glue-ing + this._Promise = this._config.Promise; + + this._factory = factory; + this._draining = false; + this._started = false; + /** + * Holds waiting clients + * @type {PriorityQueue} + */ + this._waitingClientsQueue = new PriorityQueue(this._config.priorityRange); + + /** + * Collection of promises for resource creation calls made by the pool to factory.create + * @type {Set} + */ + this._factoryCreateOperations = new Set(); + + /** + * Collection of promises for resource destruction calls made by the pool to factory.destroy + * @type {Set} + */ + this._factoryDestroyOperations = new Set(); + + /** + * A queue/stack of pooledResources awaiting acquisition + * TODO: replace with LinkedList backed array + * @type {Deque} + */ + this._availableObjects = new Deque(); + + /** + * Collection of references for any resource that are undergoing validation before being acquired + * @type {Set} + */ + this._testOnBorrowResources = new Set(); + + /** + * Collection of references for any resource that are undergoing validation before being returned + * @type {Set} + */ + this._testOnReturnResources = new Set(); + + /** + * Collection of promises for any validations currently in process + * @type {Set} + */ + this._validationOperations = new Set(); + + /** + * All objects associated with this pool in any state (except destroyed) + * @type {Set} + */ + this._allObjects = new Set(); + + /** + * Loans keyed by the borrowed resource + * @type {Map} + */ + this._resourceLoans = new Map(); + + /** + * Infinitely looping iterator over available object + * @type {DequeIterator} + */ + this._evictionIterator = this._availableObjects.iterator(); + + this._evictor = new Evictor(); + + /** + * handle for setTimeout for next eviction run + * @type {(number|null)} + */ + this._scheduledEviction = null; + + // create initial resources (if factory.min > 0) + if (this._config.autostart === true) { + this.start(); + } + } + + _destroy(pooledResource) { + // FIXME: do we need another state for "in destruction"? + pooledResource.invalidate(); + this._allObjects.delete(pooledResource); + // NOTE: this maybe very bad promise usage? + const destroyPromise = this._factory.destroy(pooledResource.obj); + const wrappedDestroyPromise = this._config.destroyTimeoutMillis + ? this._Promise.resolve(this._applyDestroyTimeout(destroyPromise)) + : this._Promise.resolve(destroyPromise); + + this._trackOperation( + wrappedDestroyPromise, + this._factoryDestroyOperations + ).catch(reason => { + this.emit(FACTORY_DESTROY_ERROR, reason); + }); + + // TODO: maybe ensuring minimum pool size should live outside here + this._ensureMinimum(); + } + + _applyDestroyTimeout(promise) { + const timeoutPromise = new this._Promise((resolve, reject) => { + setTimeout(() => { + reject(new Error("destroy timed out")); + }, this._config.destroyTimeoutMillis).unref(); + }); + return this._Promise.race([timeoutPromise, promise]); + } + + /** + * Attempt to move an available resource into test and then onto a waiting client + * @return {Boolean} could we move an available resource into test + */ + _testOnBorrow() { + if (this._availableObjects.length < 1) { + return false; + } + + const pooledResource = this._availableObjects.shift(); + // Mark the resource as in test + pooledResource.test(); + this._testOnBorrowResources.add(pooledResource); + const validationPromise = this._factory.validate(pooledResource.obj); + const wrappedValidationPromise = this._Promise.resolve(validationPromise); + + this._trackOperation( + wrappedValidationPromise, + this._validationOperations + ).then(isValid => { + this._testOnBorrowResources.delete(pooledResource); + + if (isValid === false) { + pooledResource.invalidate(); + this._destroy(pooledResource); + this._dispense(); + return; + } + this._dispatchPooledResourceToNextWaitingClient(pooledResource); + }); + + return true; + } + + /** + * Attempt to move an available resource to a waiting client + * @return {Boolean} [description] + */ + _dispatchResource() { + if (this._availableObjects.length < 1) { + return false; + } + + const pooledResource = this._availableObjects.shift(); + this._dispatchPooledResourceToNextWaitingClient(pooledResource); + return false; + } + + /** + * Attempt to resolve an outstanding resource request using an available resource from + * the pool, or creating new ones + * + * @private + */ + _dispense() { + /** + * Local variables for ease of reading/writing + * these don't (shouldn't) change across the execution of this fn + */ + const numWaitingClients = this._waitingClientsQueue.length; + + // If there aren't any waiting requests then there is nothing to do + // so lets short-circuit + if (numWaitingClients < 1) { + return; + } + + const resourceShortfall = + numWaitingClients - this._potentiallyAllocableResourceCount; + + const actualNumberOfResourcesToCreate = Math.min( + this.spareResourceCapacity, + resourceShortfall + ); + for (let i = 0; actualNumberOfResourcesToCreate > i; i++) { + this._createResource(); + } + + // If we are doing test-on-borrow see how many more resources need to be moved into test + // to help satisfy waitingClients + if (this._config.testOnBorrow === true) { + // how many available resources do we need to shift into test + const desiredNumberOfResourcesToMoveIntoTest = + numWaitingClients - this._testOnBorrowResources.size; + const actualNumberOfResourcesToMoveIntoTest = Math.min( + this._availableObjects.length, + desiredNumberOfResourcesToMoveIntoTest + ); + for (let i = 0; actualNumberOfResourcesToMoveIntoTest > i; i++) { + this._testOnBorrow(); + } + } + + // if we aren't testing-on-borrow then lets try to allocate what we can + if (this._config.testOnBorrow === false) { + const actualNumberOfResourcesToDispatch = Math.min( + this._availableObjects.length, + numWaitingClients + ); + for (let i = 0; actualNumberOfResourcesToDispatch > i; i++) { + this._dispatchResource(); + } + } + } + + /** + * Dispatches a pooledResource to the next waiting client (if any) else + * puts the PooledResource back on the available list + * @param {PooledResource} pooledResource [description] + * @return {Boolean} [description] + */ + _dispatchPooledResourceToNextWaitingClient(pooledResource) { + const clientResourceRequest = this._waitingClientsQueue.dequeue(); + if ( + clientResourceRequest === undefined || + clientResourceRequest.state !== Deferred.PENDING + ) { + // While we were away either all the waiting clients timed out + // or were somehow fulfilled. put our pooledResource back. + this._addPooledResourceToAvailableObjects(pooledResource); + // TODO: do need to trigger anything before we leave? + return false; + } + const loan = new ResourceLoan(pooledResource, this._Promise); + this._resourceLoans.set(pooledResource.obj, loan); + pooledResource.allocate(); + clientResourceRequest.resolve(pooledResource.obj); + return true; + } + + /** + * tracks on operation using given set + * handles adding/removing from the set and resolve/rejects the value/reason + * @param {Promise} operation + * @param {Set} set Set holding operations + * @return {Promise} Promise that resolves once operation has been removed from set + */ + _trackOperation(operation, set) { + set.add(operation); + + return operation.then( + v => { + set.delete(operation); + return this._Promise.resolve(v); + }, + e => { + set.delete(operation); + return this._Promise.reject(e); + } + ); + } + + /** + * @private + */ + _createResource() { + // An attempt to create a resource + const factoryPromise = this._factory.create(); + const wrappedFactoryPromise = this._Promise + .resolve(factoryPromise) + .then(resource => { + const pooledResource = new PooledResource(resource); + this._allObjects.add(pooledResource); + this._addPooledResourceToAvailableObjects(pooledResource); + }); + + this._trackOperation(wrappedFactoryPromise, this._factoryCreateOperations) + .then(() => { + this._dispense(); + // Stop bluebird complaining about this side-effect only handler + // - a promise was created in a handler but was not returned from it + // https://goo.gl/rRqMUw + return null; + }) + .catch(reason => { + this.emit(FACTORY_CREATE_ERROR, reason); + this._dispense(); + }); + } + + /** + * @private + */ + _ensureMinimum() { + if (this._draining === true) { + return; + } + const minShortfall = this._config.min - this._count; + for (let i = 0; i < minShortfall; i++) { + this._createResource(); + } + } + + _evict() { + const testsToRun = Math.min( + this._config.numTestsPerEvictionRun, + this._availableObjects.length + ); + const evictionConfig = { + softIdleTimeoutMillis: this._config.softIdleTimeoutMillis, + idleTimeoutMillis: this._config.idleTimeoutMillis, + min: this._config.min + }; + for (let testsHaveRun = 0; testsHaveRun < testsToRun; ) { + const iterationResult = this._evictionIterator.next(); + + // Safety check incase we could get stuck in infinite loop because we + // somehow emptied the array after checking its length. + if (iterationResult.done === true && this._availableObjects.length < 1) { + this._evictionIterator.reset(); + return; + } + // If this happens it should just mean we reached the end of the + // list and can reset the cursor. + if (iterationResult.done === true && this._availableObjects.length > 0) { + this._evictionIterator.reset(); + continue; + } + + const resource = iterationResult.value; + + const shouldEvict = this._evictor.evict( + evictionConfig, + resource, + this._availableObjects.length + ); + testsHaveRun++; + + if (shouldEvict === true) { + // take it out of the _availableObjects list + this._evictionIterator.remove(); + this._destroy(resource); + } + } + } + + _scheduleEvictorRun() { + // Start eviction if set + if (this._config.evictionRunIntervalMillis > 0) { + // @ts-ignore + this._scheduledEviction = setTimeout(() => { + this._evict(); + this._scheduleEvictorRun(); + }, this._config.evictionRunIntervalMillis).unref(); + } + } + + _descheduleEvictorRun() { + if (this._scheduledEviction) { + clearTimeout(this._scheduledEviction); + } + this._scheduledEviction = null; + } + + start() { + if (this._draining === true) { + return; + } + if (this._started === true) { + return; + } + this._started = true; + this._scheduleEvictorRun(); + this._ensureMinimum(); + } + + /** + * Request a new resource. The callback will be called, + * when a new resource is available, passing the resource to the callback. + * TODO: should we add a seperate "acquireWithPriority" function + * + * @param {Number} [priority=0] + * Optional. Integer between 0 and (priorityRange - 1). Specifies the priority + * of the caller if there are no available resources. Lower numbers mean higher + * priority. + * + * @returns {Promise} + */ + acquire(priority) { + if (this._started === false && this._config.autostart === false) { + this.start(); + } + + if (this._draining) { + return this._Promise.reject( + new Error("pool is draining and cannot accept work") + ); + } + + // TODO: should we defer this check till after this event loop incase "the situation" changes in the meantime + if ( + this.spareResourceCapacity < 1 && + this._availableObjects.length < 1 && + this._config.maxWaitingClients !== undefined && + this._waitingClientsQueue.length >= this._config.maxWaitingClients + ) { + return this._Promise.reject( + new Error("max waitingClients count exceeded") + ); + } + + const resourceRequest = new ResourceRequest( + this._config.acquireTimeoutMillis, + this._Promise + ); + this._waitingClientsQueue.enqueue(resourceRequest, priority); + this._dispense(); + + return resourceRequest.promise; + } + + /** + * [use method, aquires a resource, passes the resource to a user supplied function and releases it] + * @param {Function} fn [a function that accepts a resource and returns a promise that resolves/rejects once it has finished using the resource] + * @return {Promise} [resolves once the resource is released to the pool] + */ + use(fn, priority) { + return this.acquire(priority).then(resource => { + return fn(resource).then( + result => { + this.release(resource); + return result; + }, + err => { + this.destroy(resource); + throw err; + } + ); + }); + } + + /** + * Check if resource is currently on loan from the pool + * + * @param {Function} resource + * Resource for checking. + * + * @returns {Boolean} + * True if resource belongs to this pool and false otherwise + */ + isBorrowedResource(resource) { + return this._resourceLoans.has(resource); + } + + /** + * Return the resource to the pool when it is no longer required. + * + * @param {Object} resource + * The acquired object to be put back to the pool. + */ + release(resource) { + // check for an outstanding loan + const loan = this._resourceLoans.get(resource); + + if (loan === undefined) { + return this._Promise.reject( + new Error("Resource not currently part of this pool") + ); + } + + this._resourceLoans.delete(resource); + loan.resolve(); + const pooledResource = loan.pooledResource; + + pooledResource.deallocate(); + this._addPooledResourceToAvailableObjects(pooledResource); + + this._dispense(); + return this._Promise.resolve(); + } + + /** + * Request the resource to be destroyed. The factory's destroy handler + * will also be called. + * + * This should be called within an acquire() block as an alternative to release(). + * + * @param {Object} resource + * The acquired resource to be destoyed. + */ + destroy(resource) { + // check for an outstanding loan + const loan = this._resourceLoans.get(resource); + + if (loan === undefined) { + return this._Promise.reject( + new Error("Resource not currently part of this pool") + ); + } + + this._resourceLoans.delete(resource); + loan.resolve(); + const pooledResource = loan.pooledResource; + + pooledResource.deallocate(); + this._destroy(pooledResource); + + this._dispense(); + return this._Promise.resolve(); + } + + _addPooledResourceToAvailableObjects(pooledResource) { + pooledResource.idle(); + if (this._config.fifo === true) { + this._availableObjects.push(pooledResource); + } else { + this._availableObjects.unshift(pooledResource); + } + } + + /** + * Disallow any new acquire calls and let the request backlog dissapate. + * The Pool will no longer attempt to maintain a "min" number of resources + * and will only make new resources on demand. + * Resolves once all resource requests are fulfilled and all resources are returned to pool and available... + * Should probably be called "drain work" + * @returns {Promise} + */ + drain() { + this._draining = true; + return this.__allResourceRequestsSettled() + .then(() => { + return this.__allResourcesReturned(); + }) + .then(() => { + this._descheduleEvictorRun(); + }); + } + + __allResourceRequestsSettled() { + if (this._waitingClientsQueue.length > 0) { + // wait for last waiting client to be settled + // FIXME: what if they can "resolve" out of order....? + return reflector(this._waitingClientsQueue.tail.promise); + } + return this._Promise.resolve(); + } + + // FIXME: this is a horrific mess + __allResourcesReturned() { + const ps = Array.from(this._resourceLoans.values()) + .map(loan => loan.promise) + .map(reflector); + return this._Promise.all(ps); + } + + /** + * Forcibly destroys all available resources regardless of timeout. Intended to be + * invoked as part of a drain. Does not prevent the creation of new + * resources as a result of subsequent calls to acquire. + * + * Note that if factory.min > 0 and the pool isn't "draining", the pool will destroy all idle resources + * in the pool, but replace them with newly created resources up to the + * specified factory.min value. If this is not desired, set factory.min + * to zero before calling clear() + * + */ + clear() { + const reflectedCreatePromises = Array.from( + this._factoryCreateOperations + ).map(reflector); + + // wait for outstanding factory.create to complete + return this._Promise.all(reflectedCreatePromises).then(() => { + // Destroy existing resources + // @ts-ignore + for (const resource of this._availableObjects) { + this._destroy(resource); + } + const reflectedDestroyPromises = Array.from( + this._factoryDestroyOperations + ).map(reflector); + return reflector(this._Promise.all(reflectedDestroyPromises)); + }); + } + + /** + * Waits until the pool is ready. + * We define ready by checking if the current resource number is at least + * the minimum number defined. + * @returns {Promise} that resolves when the minimum number is ready. + */ + ready() { + return new this._Promise(resolve => { + const isReady = () => { + if (this.available >= this.min) { + resolve(); + } else { + setTimeout(isReady, 100); + } + }; + + isReady(); + }); + } + + /** + * How many resources are available to allocated + * (includes resources that have not been tested and may faul validation) + * NOTE: internal for now as the name is awful and might not be useful to anyone + * @return {Number} number of resources the pool has to allocate + */ + get _potentiallyAllocableResourceCount() { + return ( + this._availableObjects.length + + this._testOnBorrowResources.size + + this._testOnReturnResources.size + + this._factoryCreateOperations.size + ); + } + + /** + * The combined count of the currently created objects and those in the + * process of being created + * Does NOT include resources in the process of being destroyed + * sort of legacy... + * @return {Number} + */ + get _count() { + return this._allObjects.size + this._factoryCreateOperations.size; + } + + /** + * How many more resources does the pool have room for + * @return {Number} number of resources the pool could create before hitting any limits + */ + get spareResourceCapacity() { + return ( + this._config.max - + (this._allObjects.size + this._factoryCreateOperations.size) + ); + } + + /** + * see _count above + * @return {Number} [description] + */ + get size() { + return this._count; + } + + /** + * number of available resources + * @return {Number} [description] + */ + get available() { + return this._availableObjects.length; + } + + /** + * number of resources that are currently acquired + * @return {Number} [description] + */ + get borrowed() { + return this._resourceLoans.size; + } + + /** + * number of waiting acquire calls + * @return {Number} [description] + */ + get pending() { + return this._waitingClientsQueue.length; + } + + /** + * maximum size of the pool + * @return {Number} [description] + */ + get max() { + return this._config.max; + } + + /** + * minimum size of the pool + * @return {Number} [description] + */ + get min() { + return this._config.min; + } +} + +module.exports = Pool; + + +/***/ }), + +/***/ 64204: +/***/ ((module) => { + +"use strict"; + +/** + * Create the default settings used by the pool + * + * @class + */ +class PoolDefaults { + constructor() { + this.fifo = true; + this.priorityRange = 1; + + this.testOnBorrow = false; + this.testOnReturn = false; + + this.autostart = true; + + this.evictionRunIntervalMillis = 0; + this.numTestsPerEvictionRun = 3; + this.softIdleTimeoutMillis = -1; + this.idleTimeoutMillis = 30000; + + // FIXME: no defaults! + this.acquireTimeoutMillis = null; + this.destroyTimeoutMillis = null; + this.maxWaitingClients = null; + + this.min = null; + this.max = null; + // FIXME: this seems odd? + this.Promise = Promise; + } +} + +module.exports = PoolDefaults; + + +/***/ }), + +/***/ 10246: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const PoolDefaults = __nccwpck_require__(64204); + +class PoolOptions { + /** + * @param {Object} opts + * configuration for the pool + * @param {Number} [opts.max=null] + * Maximum number of items that can exist at the same time. Default: 1. + * Any further acquire requests will be pushed to the waiting list. + * @param {Number} [opts.min=null] + * Minimum number of items in pool (including in-use). Default: 0. + * When the pool is created, or a resource destroyed, this minimum will + * be checked. If the pool resource count is below the minimum, a new + * resource will be created and added to the pool. + * @param {Number} [opts.maxWaitingClients=null] + * maximum number of queued requests allowed after which acquire calls will be rejected + * @param {Boolean} [opts.testOnBorrow=false] + * should the pool validate resources before giving them to clients. Requires that + * `factory.validate` is specified. + * @param {Boolean} [opts.testOnReturn=false] + * should the pool validate resources before returning them to the pool. + * @param {Number} [opts.acquireTimeoutMillis=null] + * Delay in milliseconds after which the an `acquire` call will fail. optional. + * Default: undefined. Should be positive and non-zero + * @param {Number} [opts.destroyTimeoutMillis=null] + * Delay in milliseconds after which the an `destroy` call will fail, causing it to emit a factoryDestroyError event. optional. + * Default: undefined. Should be positive and non-zero + * @param {Number} [opts.priorityRange=1] + * The range from 1 to be treated as a valid priority + * @param {Boolean} [opts.fifo=true] + * Sets whether the pool has LIFO (last in, first out) behaviour with respect to idle objects. + * if false then pool has FIFO behaviour + * @param {Boolean} [opts.autostart=true] + * Should the pool start creating resources etc once the constructor is called + * @param {Number} [opts.evictionRunIntervalMillis=0] + * How often to run eviction checks. Default: 0 (does not run). + * @param {Number} [opts.numTestsPerEvictionRun=3] + * Number of resources to check each eviction run. Default: 3. + * @param {Number} [opts.softIdleTimeoutMillis=-1] + * amount of time an object may sit idle in the pool before it is eligible + * for eviction by the idle object evictor (if any), with the extra condition + * that at least "min idle" object instances remain in the pool. Default -1 (nothing can get evicted) + * @param {Number} [opts.idleTimeoutMillis=30000] + * the minimum amount of time that an object may sit idle in the pool before it is eligible for eviction + * due to idle time. Supercedes "softIdleTimeoutMillis" Default: 30000 + * @param {typeof Promise} [opts.Promise=Promise] + * What promise implementation should the pool use, defaults to native promises. + */ + constructor(opts) { + const poolDefaults = new PoolDefaults(); + + opts = opts || {}; + + this.fifo = typeof opts.fifo === "boolean" ? opts.fifo : poolDefaults.fifo; + this.priorityRange = opts.priorityRange || poolDefaults.priorityRange; + + this.testOnBorrow = + typeof opts.testOnBorrow === "boolean" + ? opts.testOnBorrow + : poolDefaults.testOnBorrow; + this.testOnReturn = + typeof opts.testOnReturn === "boolean" + ? opts.testOnReturn + : poolDefaults.testOnReturn; + + this.autostart = + typeof opts.autostart === "boolean" + ? opts.autostart + : poolDefaults.autostart; + + if (opts.acquireTimeoutMillis) { + // @ts-ignore + this.acquireTimeoutMillis = parseInt(opts.acquireTimeoutMillis, 10); + } + + if (opts.destroyTimeoutMillis) { + // @ts-ignore + this.destroyTimeoutMillis = parseInt(opts.destroyTimeoutMillis, 10); + } + + if (opts.maxWaitingClients !== undefined) { + // @ts-ignore + this.maxWaitingClients = parseInt(opts.maxWaitingClients, 10); + } + + // @ts-ignore + this.max = parseInt(opts.max, 10); + // @ts-ignore + this.min = parseInt(opts.min, 10); + + this.max = Math.max(isNaN(this.max) ? 1 : this.max, 1); + this.min = Math.min(isNaN(this.min) ? 0 : this.min, this.max); + + this.evictionRunIntervalMillis = + opts.evictionRunIntervalMillis || poolDefaults.evictionRunIntervalMillis; + this.numTestsPerEvictionRun = + opts.numTestsPerEvictionRun || poolDefaults.numTestsPerEvictionRun; + this.softIdleTimeoutMillis = + opts.softIdleTimeoutMillis || poolDefaults.softIdleTimeoutMillis; + this.idleTimeoutMillis = + opts.idleTimeoutMillis || poolDefaults.idleTimeoutMillis; + + this.Promise = opts.Promise != null ? opts.Promise : poolDefaults.Promise; + } +} + +module.exports = PoolOptions; + + +/***/ }), + +/***/ 66076: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const PooledResourceStateEnum = __nccwpck_require__(63185); + +/** + * @class + * @private + */ +class PooledResource { + constructor(resource) { + this.creationTime = Date.now(); + this.lastReturnTime = null; + this.lastBorrowTime = null; + this.lastIdleTime = null; + this.obj = resource; + this.state = PooledResourceStateEnum.IDLE; + } + + // mark the resource as "allocated" + allocate() { + this.lastBorrowTime = Date.now(); + this.state = PooledResourceStateEnum.ALLOCATED; + } + + // mark the resource as "deallocated" + deallocate() { + this.lastReturnTime = Date.now(); + this.state = PooledResourceStateEnum.IDLE; + } + + invalidate() { + this.state = PooledResourceStateEnum.INVALID; + } + + test() { + this.state = PooledResourceStateEnum.VALIDATION; + } + + idle() { + this.lastIdleTime = Date.now(); + this.state = PooledResourceStateEnum.IDLE; + } + + returning() { + this.state = PooledResourceStateEnum.RETURNING; + } +} + +module.exports = PooledResource; + + +/***/ }), + +/***/ 63185: +/***/ ((module) => { + +"use strict"; + + +const PooledResourceStateEnum = { + ALLOCATED: "ALLOCATED", // In use + IDLE: "IDLE", // In the queue, not in use. + INVALID: "INVALID", // Failed validation + RETURNING: "RETURNING", // Resource is in process of returning + VALIDATION: "VALIDATION" // Currently being tested +}; + +module.exports = PooledResourceStateEnum; + + +/***/ }), + +/***/ 49532: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Queue = __nccwpck_require__(93334); + +/** + * @class + * @private + */ +class PriorityQueue { + constructor(size) { + this._size = Math.max(+size | 0, 1); + /** @type {Queue[]} */ + this._slots = []; + // initialize arrays to hold queue elements + for (let i = 0; i < this._size; i++) { + this._slots.push(new Queue()); + } + } + + get length() { + let _length = 0; + for (let i = 0, slots = this._slots.length; i < slots; i++) { + _length += this._slots[i].length; + } + return _length; + } + + enqueue(obj, priority) { + // Convert to integer with a default value of 0. + priority = (priority && +priority | 0) || 0; + + if (priority) { + if (priority < 0 || priority >= this._size) { + priority = this._size - 1; + // put obj at the end of the line + } + } + this._slots[priority].push(obj); + } + + dequeue() { + for (let i = 0, sl = this._slots.length; i < sl; i += 1) { + if (this._slots[i].length) { + return this._slots[i].shift(); + } + } + return; + } + + get head() { + for (let i = 0, sl = this._slots.length; i < sl; i += 1) { + if (this._slots[i].length > 0) { + return this._slots[i].head; + } + } + return; + } + + get tail() { + for (let i = this._slots.length - 1; i >= 0; i--) { + if (this._slots[i].length > 0) { + return this._slots[i].tail; + } + } + return; + } +} + +module.exports = PriorityQueue; + + +/***/ }), + +/***/ 93334: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const DoublyLinkedList = __nccwpck_require__(30674); +const Deque = __nccwpck_require__(36131); + +/** + * Sort of a internal queue for holding the waiting + * resource requets for a given "priority". + * Also handles managing timeouts rejections on items (is this the best place for this?) + * This is the last point where we know which queue a resourceRequest is in + * + */ +class Queue extends Deque { + /** + * Adds the obj to the end of the list for this slot + * we completely override the parent method because we need access to the + * node for our rejection handler + * @param {any} resourceRequest [description] + */ + push(resourceRequest) { + const node = DoublyLinkedList.createNode(resourceRequest); + resourceRequest.promise.catch(this._createTimeoutRejectionHandler(node)); + this._list.insertEnd(node); + } + + _createTimeoutRejectionHandler(node) { + return reason => { + if (reason.name === "TimeoutError") { + this._list.remove(node); + } + }; + } +} + +module.exports = Queue; + + +/***/ }), + +/***/ 63711: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Deferred = __nccwpck_require__(71186); + +/** + * Plan is to maybe add tracking via Error objects + * and other fun stuff! + */ + +class ResourceLoan extends Deferred { + /** + * + * @param {any} pooledResource the PooledResource this loan belongs to + * @return {any} [description] + */ + constructor(pooledResource, Promise) { + super(Promise); + this._creationTimestamp = Date.now(); + this.pooledResource = pooledResource; + } + + reject() { + /** + * Loans can only be resolved at the moment + */ + } +} + +module.exports = ResourceLoan; + + +/***/ }), + +/***/ 54517: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const Deferred = __nccwpck_require__(71186); +const errors = __nccwpck_require__(49765); + +function fbind(fn, ctx) { + return function bound() { + return fn.apply(ctx, arguments); + }; +} + +/** + * Wraps a users request for a resource + * Basically a promise mashed in with a timeout + * @private + */ +class ResourceRequest extends Deferred { + /** + * [constructor description] + * @param {Number} ttl timeout + */ + constructor(ttl, Promise) { + super(Promise); + this._creationTimestamp = Date.now(); + this._timeout = null; + + if (ttl !== undefined) { + this.setTimeout(ttl); + } + } + + setTimeout(delay) { + if (this._state !== ResourceRequest.PENDING) { + return; + } + const ttl = parseInt(delay, 10); + + if (isNaN(ttl) || ttl <= 0) { + throw new Error("delay must be a positive int"); + } + + const age = Date.now() - this._creationTimestamp; + + if (this._timeout) { + this.removeTimeout(); + } + + this._timeout = setTimeout( + fbind(this._fireTimeout, this), + Math.max(ttl - age, 0) + ); + } + + removeTimeout() { + if (this._timeout) { + clearTimeout(this._timeout); + } + this._timeout = null; + } + + _fireTimeout() { + this.reject(new errors.TimeoutError("ResourceRequest timed out")); + } + + reject(reason) { + this.removeTimeout(); + super.reject(reason); + } + + resolve(value) { + this.removeTimeout(); + super.resolve(value); + } +} + +module.exports = ResourceRequest; + + +/***/ }), + +/***/ 49765: +/***/ ((module) => { + +"use strict"; + + +class ExtendableError extends Error { + constructor(message) { + super(message); + // @ts-ignore + this.name = this.constructor.name; + this.message = message; + if (typeof Error.captureStackTrace === "function") { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = new Error(message).stack; + } + } +} + +/* eslint-disable no-useless-constructor */ +class TimeoutError extends ExtendableError { + constructor(m) { + super(m); + } +} +/* eslint-enable no-useless-constructor */ + +module.exports = { + TimeoutError: TimeoutError +}; + + +/***/ }), + +/***/ 18904: +/***/ ((module) => { + +module.exports = function(factory) { + if (typeof factory.create !== "function") { + throw new TypeError("factory.create must be a function"); + } + + if (typeof factory.destroy !== "function") { + throw new TypeError("factory.destroy must be a function"); + } + + if ( + typeof factory.validate !== "undefined" && + typeof factory.validate !== "function" + ) { + throw new TypeError("factory.validate must be a function"); + } +}; + + +/***/ }), + +/***/ 74497: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +function noop() {} + +/** + * Reflects a promise but does not expose any + * underlying value or rejection from that promise. + * @param {Promise} promise [description] + * @return {Promise} [description] + */ +exports.W = function(promise) { + return promise.then(noop, noop); +}; + + +/***/ }), + +/***/ 48566: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (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); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const net_1 = __importDefault(__nccwpck_require__(41808)); +const tls_1 = __importDefault(__nccwpck_require__(24404)); +const url_1 = __importDefault(__nccwpck_require__(57310)); +const assert_1 = __importDefault(__nccwpck_require__(39491)); +const debug_1 = __importDefault(__nccwpck_require__(82539)); +const agent_base_1 = __nccwpck_require__(84131); +const parse_proxy_response_1 = __importDefault(__nccwpck_require__(54651)); +const debug = debug_1.default('https-proxy-agent:agent'); +/** + * The `HttpsProxyAgent` implements an HTTP Agent subclass that connects to + * the specified "HTTP(s) proxy server" in order to proxy HTTPS requests. + * + * Outgoing HTTP requests are first tunneled through the proxy server using the + * `CONNECT` HTTP request method to establish a connection to the proxy server, + * and then the proxy server connects to the destination target and issues the + * HTTP request from the proxy server. + * + * `https:` requests have their socket connection upgraded to TLS once + * the connection to the proxy server has been established. + * + * @api public + */ +class HttpsProxyAgent extends agent_base_1.Agent { + constructor(_opts) { + let opts; + if (typeof _opts === 'string') { + opts = url_1.default.parse(_opts); + } + else { + opts = _opts; + } + if (!opts) { + throw new Error('an HTTP(S) proxy server `host` and `port` must be specified!'); + } + debug('creating new HttpsProxyAgent instance: %o', opts); + super(opts); + const proxy = Object.assign({}, opts); + // If `true`, then connect to the proxy server over TLS. + // Defaults to `false`. + this.secureProxy = opts.secureProxy || isHTTPS(proxy.protocol); + // Prefer `hostname` over `host`, and set the `port` if needed. + proxy.host = proxy.hostname || proxy.host; + if (typeof proxy.port === 'string') { + proxy.port = parseInt(proxy.port, 10); + } + if (!proxy.port && proxy.host) { + proxy.port = this.secureProxy ? 443 : 80; + } + // ALPN is supported by Node.js >= v5. + // attempt to negotiate http/1.1 for proxy servers that support http/2 + if (this.secureProxy && !('ALPNProtocols' in proxy)) { + proxy.ALPNProtocols = ['http 1.1']; + } + if (proxy.host && proxy.path) { + // If both a `host` and `path` are specified then it's most likely + // the result of a `url.parse()` call... we need to remove the + // `path` portion so that `net.connect()` doesn't attempt to open + // that as a Unix socket file. + delete proxy.path; + delete proxy.pathname; + } + this.proxy = proxy; + } + /** + * Called when the node-core HTTP client library is creating a + * new HTTP request. + * + * @api protected + */ + callback(req, opts) { + return __awaiter(this, void 0, void 0, function* () { + const { proxy, secureProxy } = this; + // Create a socket connection to the proxy server. + let socket; + if (secureProxy) { + debug('Creating `tls.Socket`: %o', proxy); + socket = tls_1.default.connect(proxy); + } + else { + debug('Creating `net.Socket`: %o', proxy); + socket = net_1.default.connect(proxy); + } + const headers = Object.assign({}, proxy.headers); + const hostname = `${opts.host}:${opts.port}`; + let payload = `CONNECT ${hostname} HTTP/1.1\r\n`; + // Inject the `Proxy-Authorization` header if necessary. + if (proxy.auth) { + headers['Proxy-Authorization'] = `Basic ${Buffer.from(proxy.auth).toString('base64')}`; + } + // The `Host` header should only include the port + // number when it is not the default port. + let { host, port, secureEndpoint } = opts; + if (!isDefaultPort(port, secureEndpoint)) { + host += `:${port}`; + } + headers.Host = host; + headers.Connection = 'close'; + for (const name of Object.keys(headers)) { + payload += `${name}: ${headers[name]}\r\n`; + } + const proxyResponsePromise = parse_proxy_response_1.default(socket); + socket.write(`${payload}\r\n`); + const { statusCode, buffered } = yield proxyResponsePromise; + if (statusCode === 200) { + req.once('socket', resume); + if (opts.secureEndpoint) { + // The proxy is connecting to a TLS server, so upgrade + // this socket connection to a TLS connection. + debug('Upgrading socket connection to TLS'); + const servername = opts.servername || opts.host; + return tls_1.default.connect(Object.assign(Object.assign({}, omit(opts, 'host', 'hostname', 'path', 'port')), { socket, + servername })); + } + return socket; + } + // Some other status code that's not 200... need to re-play the HTTP + // header "data" events onto the socket once the HTTP machinery is + // attached so that the node core `http` can parse and handle the + // error status code. + // Close the original socket, and a new "fake" socket is returned + // instead, so that the proxy doesn't get the HTTP request + // written to it (which may contain `Authorization` headers or other + // sensitive data). + // + // See: https://hackerone.com/reports/541502 + socket.destroy(); + const fakeSocket = new net_1.default.Socket({ writable: false }); + fakeSocket.readable = true; + // Need to wait for the "socket" event to re-play the "data" events. + req.once('socket', (s) => { + debug('replaying proxy buffer for failed request'); + assert_1.default(s.listenerCount('data') > 0); + // Replay the "buffered" Buffer onto the fake `socket`, since at + // this point the HTTP module machinery has been hooked up for + // the user. + s.push(buffered); + s.push(null); + }); + return fakeSocket; + }); + } +} +exports["default"] = HttpsProxyAgent; +function resume(socket) { + socket.resume(); +} +function isDefaultPort(port, secure) { + return Boolean((!secure && port === 80) || (secure && port === 443)); +} +function isHTTPS(protocol) { + return typeof protocol === 'string' ? /^https:?$/i.test(protocol) : false; +} +function omit(obj, ...keys) { + const ret = {}; + let key; + for (key in obj) { + if (!keys.includes(key)) { + ret[key] = obj[key]; + } + } + return ret; +} +//# sourceMappingURL=agent.js.map + +/***/ }), + +/***/ 81908: +/***/ (function(module, __unused_webpack_exports, __nccwpck_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +const agent_1 = __importDefault(__nccwpck_require__(48566)); +function createHttpsProxyAgent(opts) { + return new agent_1.default(opts); +} +(function (createHttpsProxyAgent) { + createHttpsProxyAgent.HttpsProxyAgent = agent_1.default; + createHttpsProxyAgent.prototype = agent_1.default.prototype; +})(createHttpsProxyAgent || (createHttpsProxyAgent = {})); +module.exports = createHttpsProxyAgent; +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 54651: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const debug_1 = __importDefault(__nccwpck_require__(82539)); +const debug = debug_1.default('https-proxy-agent:parse-proxy-response'); +function parseProxyResponse(socket) { + return new Promise((resolve, reject) => { + // we need to buffer any HTTP traffic that happens with the proxy before we get + // the CONNECT response, so that if the response is anything other than an "200" + // response code, then we can re-play the "data" events on the socket once the + // HTTP parser is hooked up... + let buffersLength = 0; + const buffers = []; + function read() { + const b = socket.read(); + if (b) + ondata(b); + else + socket.once('readable', read); + } + function cleanup() { + socket.removeListener('end', onend); + socket.removeListener('error', onerror); + socket.removeListener('close', onclose); + socket.removeListener('readable', read); + } + function onclose(err) { + debug('onclose had error %o', err); + } + function onend() { + debug('onend'); + } + function onerror(err) { + cleanup(); + debug('onerror %o', err); + reject(err); + } + function ondata(b) { + buffers.push(b); + buffersLength += b.length; + const buffered = Buffer.concat(buffers, buffersLength); + const endOfHeaders = buffered.indexOf('\r\n\r\n'); + if (endOfHeaders === -1) { + // keep buffering + debug('have not received end of HTTP headers yet...'); + read(); + return; + } + const firstLine = buffered.toString('ascii', 0, buffered.indexOf('\r\n')); + const statusCode = +firstLine.split(' ')[1]; + debug('got proxy server response: %o', firstLine); + resolve({ + statusCode, + buffered + }); + } + socket.on('error', onerror); + socket.on('close', onclose); + socket.on('end', onend); + read(); + }); +} +exports["default"] = parseProxyResponse; +//# sourceMappingURL=parse-proxy-response.js.map + +/***/ }), + +/***/ 74624: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +/*! + * is-plain-object + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + */ + +function isObject(o) { + return Object.prototype.toString.call(o) === '[object Object]'; +} + +function isPlainObject(o) { + var ctor,prot; + + if (isObject(o) === false) return false; + + // If has modified constructor + ctor = o.constructor; + if (ctor === undefined) return true; + + // If has modified prototype + prot = ctor.prototype; + if (isObject(prot) === false) return false; + + // If constructor does not have an Object-specific method + if (prot.hasOwnProperty('isPrototypeOf') === false) { + return false; + } + + // Most likely a plain Object + return true; +} + +exports.isPlainObject = isPlainObject; + + +/***/ }), + +/***/ 57427: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + + +/** + * Module dependencies. + */ + +var Bayesian = (__nccwpck_require__(45489)/* .Bayesian */ .j); + +/** + * Memory from classifier training. + */ + +var memory = __nccwpck_require__(50126); + +/** + * Classifier singleton. + */ + +var classifier = new Bayesian; + +// input training data + +classifier.fromJSON(memory); + +/** + * Expose the classifier. + */ + +module.exports = classifier.classify.bind(classifier); + + +/***/ }), + +/***/ 46397: +/***/ ((module, exports, __nccwpck_require__) => { + +var fs = __nccwpck_require__(57147); +var path = __nccwpck_require__(71017); +var classify = __nccwpck_require__(57427); + +/** + * Map classification language names to mapped language names. + * + * @type {Object} + */ +var classifyMap = { + 'ruby': 'Ruby', + 'python': 'Python', + 'javascript': 'JavaScript', + 'objective-c': 'Objective-C', + 'html': 'HTML', + 'css': 'CSS', + 'shell': 'Shell', + 'c++': 'C++', + 'c': 'C', + 'coffee-script': 'CoffeeScript' +}; + +/** + * Return the programming language of a given filename. + * + * @param {String} filename + * @param {Function} done + */ +exports = module.exports = function (filename, done) { + fs.stat(filename, function (err, stats) { + if (err) { + return done(err); + } + + if (!stats.isFile()) { + return done(new Error('Should only detect files: ' + filename)); + } + + // Do the simplest synchronous test based on filenames first. + var fileDetected = exports.filename(filename); + + if (fileDetected) { + return done(null, fileDetected); + } + + var languages = {}; + var shebang = ''; + var firstChunk = true; + var hasShebang = false; + var shebangDetected; + + // Open a file read stream. This should be the simplest way to do + // dynamic language detection while the stream is running. + var stream = fs.createReadStream(filename); + + // Call `done` with the error when something breaks. + stream.on('error', done); + + stream.on('data', function (data) { + var chunk = data.toString(); + + // If it's the first chunk we want to + if (firstChunk) { + chunk = chunk.replace(/^ +/, ''); + + // If we have at least two characters left in the chunk, we can assume + // enough of the first chunk has been received to test the shebang. + if (chunk.length > 1) { + firstChunk = false; + + // If we have a shebang, we need to special case the stream until + // the first new line. + if (chunk.substr(0, 2) === '#!') { + hasShebang = true; + } + } + } + + // While we have the shebang line, concat each chunk together for testing. + if (hasShebang) { + shebang += chunk; + + // On the first new line, test the shebang and attempt to close the + // stream early. + if (/\r?\n/.test(shebang)) { + hasShebang = false; + shebangDetected = exports.shebang(shebang); + + if (shebangDetected) { + return stream.close(); + } + } + } + + // If the shebang doesn't exist, fall back to language classification. + var classified = exports.classify(chunk); + + if (classified) { + (languages[classified]++ || (languages[classified] = 1)); + } + }); + + stream.on('close', function () { + // We can short-circuit if the shebang was detected. + if (shebangDetected) { + return done(null, shebangDetected); + } + + // No languages were detected in the entire file. + if (!Object.keys(languages).length) { + return done(); + } + + // Get the most popular language from language detection. + var popular = Object.keys(languages).reduce(function (highest, language) { + return languages[highest] > languages[language] ? highest : language; + }); + + return done(null, popular); + }); + }); +}; + +/** + * Export useful direct aliases. + * + * @type {Object} + */ +exports.aliases = __nccwpck_require__(84751); +exports.filenames = __nccwpck_require__(87086); +exports.extensions = __nccwpck_require__(3561); +exports.interpreters = __nccwpck_require__(358); + +/** + * Detect file language synchronously. + * + * @param {String} filename + * @return {String} + */ +exports.sync = function (filename) { + if (!fs.statSync(filename).isFile()) { + throw new Error('Should only detect files: ' + filename); + } + + return ( + exports.filename(filename) || + exports.contents(path, fs.readFileSync(filename)) + ); +} + +/** + * Check against the contents of a file synchronously. + + * @param {String} filename + * @param {String} contents + * @return {String} + */ +exports.contents = function (filename, contents) { + return ( + exports.filename(filename) || + exports.shebang(contents) || + exports.classify(contents) + ); +}; + +/** + * Attempt to get the language based on a filename. + * + * @param {String} filename + * @return {String} + */ +exports.filename = function (filename) { + var basename = path.basename(filename); + + // The filename was detected. + if (typeof exports.filenames[basename] === 'string') { + return exports.filenames[basename]; + } + + var extension = (path.extname(basename) || '').toLowerCase(); + + // The extension was recognised. + if (typeof exports.extensions[extension] === 'string') { + return exports.extensions[extension]; + } +}; + +/** + * Return the language from a shebang definition. + * + * @param {String} contents + * @return {String} + */ +exports.shebang = function (contents) { + // Coerece to a string (in case of Buffer) and replace preceding whitespace. + var file = contents.toString().replace(/^\s*/, ''); + + // Return early if it doesn't start with a shebang. + if (file.substr(0, 2) !== '#!') { + return; + } + + var bang = file.split(/\r?\n/g)[0]; + var tokens = bang.replace(/^#! +/, '#!').split(' '); + var pieces = tokens[0].split('/'); + var script = pieces[pieces.length - 1]; + + if (script === 'env') { + script = tokens[1]; + } + + // "python2.6" -> "python" + script = script.replace(/(?:\d+\.?)+$/, ''); + + return exports.interpreters[script] || exports.aliases[script]; +}; + +/** + * Attempt to classify the file contents. + * + * @param {String} contents + * @return {String} + */ +exports.classify = function (contents) { + return classifyMap[classify(contents.toString())]; +}; + + +/***/ }), + +/***/ 66509: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +/*! + * mime-db + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */ + +/** + * Module exports. + */ + +module.exports = __nccwpck_require__(53765) + + +/***/ }), + +/***/ 28498: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; +/*! + * mime-types + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */ + + + +/** + * Module dependencies. + * @private + */ + +var db = __nccwpck_require__(66509) +var extname = (__nccwpck_require__(71017).extname) + +/** + * Module variables. + * @private + */ + +var EXTRACT_TYPE_REGEXP = /^\s*([^;\s]*)(?:;|\s|$)/ +var TEXT_TYPE_REGEXP = /^text\//i + +/** + * Module exports. + * @public + */ + +exports.charset = charset +exports.charsets = { lookup: charset } +exports.contentType = contentType +exports.extension = extension +exports.extensions = Object.create(null) +exports.lookup = lookup +exports.types = Object.create(null) + +// Populate the extensions/types maps +populateMaps(exports.extensions, exports.types) + +/** + * Get the default charset for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function charset (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + var mime = match && db[match[1].toLowerCase()] + + if (mime && mime.charset) { + return mime.charset + } + + // default text/* to utf-8 + if (match && TEXT_TYPE_REGEXP.test(match[1])) { + return 'UTF-8' + } + + return false +} + +/** + * Create a full Content-Type header given a MIME type or extension. + * + * @param {string} str + * @return {boolean|string} + */ + +function contentType (str) { + // TODO: should this even be in this module? + if (!str || typeof str !== 'string') { + return false + } + + var mime = str.indexOf('/') === -1 + ? exports.lookup(str) + : str + + if (!mime) { + return false + } + + // TODO: use content-type or other module + if (mime.indexOf('charset') === -1) { + var charset = exports.charset(mime) + if (charset) mime += '; charset=' + charset.toLowerCase() + } + + return mime +} + +/** + * Get the default extension for a MIME type. + * + * @param {string} type + * @return {boolean|string} + */ + +function extension (type) { + if (!type || typeof type !== 'string') { + return false + } + + // TODO: use media-typer + var match = EXTRACT_TYPE_REGEXP.exec(type) + + // get extensions + var exts = match && exports.extensions[match[1].toLowerCase()] + + if (!exts || !exts.length) { + return false + } + + return exts[0] +} + +/** + * Lookup the MIME type for a file path/extension. + * + * @param {string} path + * @return {boolean|string} + */ + +function lookup (path) { + if (!path || typeof path !== 'string') { + return false + } + + // get the extension ("ext" or ".ext" or full path) + var extension = extname('x.' + path) + .toLowerCase() + .substr(1) + + if (!extension) { + return false + } + + return exports.types[extension] || false +} + +/** + * Populate the extensions and types maps. + * @private + */ + +function populateMaps (extensions, types) { + // source preference (least -> most) + var preference = ['nginx', 'apache', undefined, 'iana'] + + Object.keys(db).forEach(function forEachMimeType (type) { + var mime = db[type] + var exts = mime.extensions + + if (!exts || !exts.length) { + return + } + + // mime -> extensions + extensions[type] = exts + + // extension -> mime + for (var i = 0; i < exts.length; i++) { + var extension = exts[i] + + if (types[extension]) { + var from = preference.indexOf(db[types[extension]].source) + var to = preference.indexOf(mime.source) + + if (types[extension] !== 'application/octet-stream' && + (from > to || (from === to && types[extension].substr(0, 12) === 'application/'))) { + // skip the remapping + continue + } + } + + // set the extension -> mime + types[extension] = type + } + }) +} + + +/***/ }), + +/***/ 40030: +/***/ ((module) => { + +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var w = d * 7; +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' && isFinite(val)) { + 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|weeks?|w|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 'weeks': + case 'week': + case 'w': + return n * w; + 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) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return Math.round(ms / d) + 'd'; + } + if (msAbs >= h) { + return Math.round(ms / h) + 'h'; + } + if (msAbs >= m) { + return Math.round(ms / m) + 'm'; + } + if (msAbs >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + var msAbs = Math.abs(ms); + if (msAbs >= d) { + return plural(ms, msAbs, d, 'day'); + } + if (msAbs >= h) { + return plural(ms, msAbs, h, 'hour'); + } + if (msAbs >= m) { + return plural(ms, msAbs, m, 'minute'); + } + if (msAbs >= s) { + return plural(ms, msAbs, s, 'second'); + } + return ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, msAbs, n, name) { + var isPlural = msAbs >= n * 1.5; + return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : ''); +} + + +/***/ }), + +/***/ 2434: +/***/ ((module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var Stream = _interopDefault(__nccwpck_require__(12781)); +var http = _interopDefault(__nccwpck_require__(13685)); +var Url = _interopDefault(__nccwpck_require__(57310)); +var whatwgUrl = _interopDefault(__nccwpck_require__(34802)); +var https = _interopDefault(__nccwpck_require__(95687)); +var zlib = _interopDefault(__nccwpck_require__(59796)); + +// Based on https://github.com/tmpvar/jsdom/blob/aa85b2abf07766ff7bf5c1f6daafb3726f2f2db5/lib/jsdom/living/blob.js + +// fix for "Readable" isn't a named export issue +const Readable = Stream.Readable; + +const BUFFER = Symbol('buffer'); +const TYPE = Symbol('type'); + +class Blob { + constructor() { + this[TYPE] = ''; + + const blobParts = arguments[0]; + const options = arguments[1]; + + const buffers = []; + let size = 0; + + if (blobParts) { + const a = blobParts; + const length = Number(a.length); + for (let i = 0; i < length; i++) { + const element = a[i]; + let buffer; + if (element instanceof Buffer) { + buffer = element; + } else if (ArrayBuffer.isView(element)) { + buffer = Buffer.from(element.buffer, element.byteOffset, element.byteLength); + } else if (element instanceof ArrayBuffer) { + buffer = Buffer.from(element); + } else if (element instanceof Blob) { + buffer = element[BUFFER]; + } else { + buffer = Buffer.from(typeof element === 'string' ? element : String(element)); + } + size += buffer.length; + buffers.push(buffer); + } + } + + this[BUFFER] = Buffer.concat(buffers); + + let type = options && options.type !== undefined && String(options.type).toLowerCase(); + if (type && !/[^\u0020-\u007E]/.test(type)) { + this[TYPE] = type; + } + } + get size() { + return this[BUFFER].length; + } + get type() { + return this[TYPE]; + } + text() { + return Promise.resolve(this[BUFFER].toString()); + } + arrayBuffer() { + const buf = this[BUFFER]; + const ab = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + return Promise.resolve(ab); + } + stream() { + const readable = new Readable(); + readable._read = function () {}; + readable.push(this[BUFFER]); + readable.push(null); + return readable; + } + toString() { + return '[object Blob]'; + } + slice() { + const size = this.size; + + const start = arguments[0]; + const end = arguments[1]; + let relativeStart, relativeEnd; + if (start === undefined) { + relativeStart = 0; + } else if (start < 0) { + relativeStart = Math.max(size + start, 0); + } else { + relativeStart = Math.min(start, size); + } + if (end === undefined) { + relativeEnd = size; + } else if (end < 0) { + relativeEnd = Math.max(size + end, 0); + } else { + relativeEnd = Math.min(end, size); + } + const span = Math.max(relativeEnd - relativeStart, 0); + + const buffer = this[BUFFER]; + const slicedBuffer = buffer.slice(relativeStart, relativeStart + span); + const blob = new Blob([], { type: arguments[2] }); + blob[BUFFER] = slicedBuffer; + return blob; + } +} + +Object.defineProperties(Blob.prototype, { + size: { enumerable: true }, + type: { enumerable: true }, + slice: { enumerable: true } +}); + +Object.defineProperty(Blob.prototype, Symbol.toStringTag, { + value: 'Blob', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * fetch-error.js + * + * FetchError interface for operational errors + */ + +/** + * Create FetchError instance + * + * @param String message Error message for human + * @param String type Error type for machine + * @param String systemError For Node.js system error + * @return FetchError + */ +function FetchError(message, type, systemError) { + Error.call(this, message); + + this.message = message; + this.type = type; + + // when err.type is `system`, err.code contains system error code + if (systemError) { + this.code = this.errno = systemError.code; + } + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +FetchError.prototype = Object.create(Error.prototype); +FetchError.prototype.constructor = FetchError; +FetchError.prototype.name = 'FetchError'; + +let convert; +try { + convert = (__nccwpck_require__(28076).convert); +} catch (e) {} + +const INTERNALS = Symbol('Body internals'); + +// fix an issue where "PassThrough" isn't a named export for node <10 +const PassThrough = Stream.PassThrough; + +/** + * Body mixin + * + * Ref: https://fetch.spec.whatwg.org/#body + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +function Body(body) { + var _this = this; + + var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, + _ref$size = _ref.size; + + let size = _ref$size === undefined ? 0 : _ref$size; + var _ref$timeout = _ref.timeout; + let timeout = _ref$timeout === undefined ? 0 : _ref$timeout; + + if (body == null) { + // body is undefined or null + body = null; + } else if (isURLSearchParams(body)) { + // body is a URLSearchParams + body = Buffer.from(body.toString()); + } else if (isBlob(body)) ; else if (Buffer.isBuffer(body)) ; else if (Object.prototype.toString.call(body) === '[object ArrayBuffer]') { + // body is ArrayBuffer + body = Buffer.from(body); + } else if (ArrayBuffer.isView(body)) { + // body is ArrayBufferView + body = Buffer.from(body.buffer, body.byteOffset, body.byteLength); + } else if (body instanceof Stream) ; else { + // none of the above + // coerce to string then buffer + body = Buffer.from(String(body)); + } + this[INTERNALS] = { + body, + disturbed: false, + error: null + }; + this.size = size; + this.timeout = timeout; + + if (body instanceof Stream) { + body.on('error', function (err) { + const error = err.name === 'AbortError' ? err : new FetchError(`Invalid response body while trying to fetch ${_this.url}: ${err.message}`, 'system', err); + _this[INTERNALS].error = error; + }); + } +} + +Body.prototype = { + get body() { + return this[INTERNALS].body; + }, + + get bodyUsed() { + return this[INTERNALS].disturbed; + }, + + /** + * Decode response as ArrayBuffer + * + * @return Promise + */ + arrayBuffer() { + return consumeBody.call(this).then(function (buf) { + return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength); + }); + }, + + /** + * Return raw response as Blob + * + * @return Promise + */ + blob() { + let ct = this.headers && this.headers.get('content-type') || ''; + return consumeBody.call(this).then(function (buf) { + return Object.assign( + // Prevent copying + new Blob([], { + type: ct.toLowerCase() + }), { + [BUFFER]: buf + }); + }); + }, + + /** + * Decode response as json + * + * @return Promise + */ + json() { + var _this2 = this; + + return consumeBody.call(this).then(function (buffer) { + try { + return JSON.parse(buffer.toString()); + } catch (err) { + return Body.Promise.reject(new FetchError(`invalid json response body at ${_this2.url} reason: ${err.message}`, 'invalid-json')); + } + }); + }, + + /** + * Decode response as text + * + * @return Promise + */ + text() { + return consumeBody.call(this).then(function (buffer) { + return buffer.toString(); + }); + }, + + /** + * Decode response as buffer (non-spec api) + * + * @return Promise + */ + buffer() { + return consumeBody.call(this); + }, + + /** + * Decode response as text, while automatically detecting the encoding and + * trying to decode to UTF-8 (non-spec api) + * + * @return Promise + */ + textConverted() { + var _this3 = this; + + return consumeBody.call(this).then(function (buffer) { + return convertBody(buffer, _this3.headers); + }); + } +}; + +// In browsers, all properties are enumerable. +Object.defineProperties(Body.prototype, { + body: { enumerable: true }, + bodyUsed: { enumerable: true }, + arrayBuffer: { enumerable: true }, + blob: { enumerable: true }, + json: { enumerable: true }, + text: { enumerable: true } +}); + +Body.mixIn = function (proto) { + for (const name of Object.getOwnPropertyNames(Body.prototype)) { + // istanbul ignore else: future proof + if (!(name in proto)) { + const desc = Object.getOwnPropertyDescriptor(Body.prototype, name); + Object.defineProperty(proto, name, desc); + } + } +}; + +/** + * Consume and convert an entire Body to a Buffer. + * + * Ref: https://fetch.spec.whatwg.org/#concept-body-consume-body + * + * @return Promise + */ +function consumeBody() { + var _this4 = this; + + if (this[INTERNALS].disturbed) { + return Body.Promise.reject(new TypeError(`body used already for: ${this.url}`)); + } + + this[INTERNALS].disturbed = true; + + if (this[INTERNALS].error) { + return Body.Promise.reject(this[INTERNALS].error); + } + + let body = this.body; + + // body is null + if (body === null) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is blob + if (isBlob(body)) { + body = body.stream(); + } + + // body is buffer + if (Buffer.isBuffer(body)) { + return Body.Promise.resolve(body); + } + + // istanbul ignore if: should never happen + if (!(body instanceof Stream)) { + return Body.Promise.resolve(Buffer.alloc(0)); + } + + // body is stream + // get ready to actually consume the body + let accum = []; + let accumBytes = 0; + let abort = false; + + return new Body.Promise(function (resolve, reject) { + let resTimeout; + + // allow timeout on slow response body + if (_this4.timeout) { + resTimeout = setTimeout(function () { + abort = true; + reject(new FetchError(`Response timeout while trying to fetch ${_this4.url} (over ${_this4.timeout}ms)`, 'body-timeout')); + }, _this4.timeout); + } + + // handle stream errors + body.on('error', function (err) { + if (err.name === 'AbortError') { + // if the request was aborted, reject with this Error + abort = true; + reject(err); + } else { + // other errors, such as incorrect content-encoding + reject(new FetchError(`Invalid response body while trying to fetch ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + + body.on('data', function (chunk) { + if (abort || chunk === null) { + return; + } + + if (_this4.size && accumBytes + chunk.length > _this4.size) { + abort = true; + reject(new FetchError(`content size at ${_this4.url} over limit: ${_this4.size}`, 'max-size')); + return; + } + + accumBytes += chunk.length; + accum.push(chunk); + }); + + body.on('end', function () { + if (abort) { + return; + } + + clearTimeout(resTimeout); + + try { + resolve(Buffer.concat(accum, accumBytes)); + } catch (err) { + // handle streams that have accumulated too much data (issue #414) + reject(new FetchError(`Could not create Buffer from response body for ${_this4.url}: ${err.message}`, 'system', err)); + } + }); + }); +} + +/** + * Detect buffer encoding and convert to target encoding + * ref: http://www.w3.org/TR/2011/WD-html5-20110113/parsing.html#determining-the-character-encoding + * + * @param Buffer buffer Incoming buffer + * @param String encoding Target encoding + * @return String + */ +function convertBody(buffer, headers) { + if (typeof convert !== 'function') { + throw new Error('The package `encoding` must be installed to use the textConverted() function'); + } + + const ct = headers.get('content-type'); + let charset = 'utf-8'; + let res, str; + + // header + if (ct) { + res = /charset=([^;]*)/i.exec(ct); + } + + // no charset in content type, peek at response body for at most 1024 bytes + str = buffer.slice(0, 1024).toString(); + + // html5 + if (!res && str) { + res = / 0 && arguments[0] !== undefined ? arguments[0] : undefined; + + this[MAP] = Object.create(null); + + if (init instanceof Headers) { + const rawHeaders = init.raw(); + const headerNames = Object.keys(rawHeaders); + + for (const headerName of headerNames) { + for (const value of rawHeaders[headerName]) { + this.append(headerName, value); + } + } + + return; + } + + // We don't worry about converting prop to ByteString here as append() + // will handle it. + if (init == null) ; else if (typeof init === 'object') { + const method = init[Symbol.iterator]; + if (method != null) { + if (typeof method !== 'function') { + throw new TypeError('Header pairs must be iterable'); + } + + // sequence> + // Note: per spec we have to first exhaust the lists then process them + const pairs = []; + for (const pair of init) { + if (typeof pair !== 'object' || typeof pair[Symbol.iterator] !== 'function') { + throw new TypeError('Each header pair must be iterable'); + } + pairs.push(Array.from(pair)); + } + + for (const pair of pairs) { + if (pair.length !== 2) { + throw new TypeError('Each header pair must be a name/value tuple'); + } + this.append(pair[0], pair[1]); + } + } else { + // record + for (const key of Object.keys(init)) { + const value = init[key]; + this.append(key, value); + } + } + } else { + throw new TypeError('Provided initializer must be an object'); + } + } + + /** + * Return combined header value given name + * + * @param String name Header name + * @return Mixed + */ + get(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key === undefined) { + return null; + } + + return this[MAP][key].join(', '); + } + + /** + * Iterate over all headers + * + * @param Function callback Executed for each item with parameters (value, name, thisArg) + * @param Boolean thisArg `this` context for callback function + * @return Void + */ + forEach(callback) { + let thisArg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined; + + let pairs = getHeaders(this); + let i = 0; + while (i < pairs.length) { + var _pairs$i = pairs[i]; + const name = _pairs$i[0], + value = _pairs$i[1]; + + callback.call(thisArg, value, name, this); + pairs = getHeaders(this); + i++; + } + } + + /** + * Overwrite header values given name + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + set(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + this[MAP][key !== undefined ? key : name] = [value]; + } + + /** + * Append a value onto existing header + * + * @param String name Header name + * @param String value Header value + * @return Void + */ + append(name, value) { + name = `${name}`; + value = `${value}`; + validateName(name); + validateValue(value); + const key = find(this[MAP], name); + if (key !== undefined) { + this[MAP][key].push(value); + } else { + this[MAP][name] = [value]; + } + } + + /** + * Check for header name existence + * + * @param String name Header name + * @return Boolean + */ + has(name) { + name = `${name}`; + validateName(name); + return find(this[MAP], name) !== undefined; + } + + /** + * Delete all header values given name + * + * @param String name Header name + * @return Void + */ + delete(name) { + name = `${name}`; + validateName(name); + const key = find(this[MAP], name); + if (key !== undefined) { + delete this[MAP][key]; + } + } + + /** + * Return raw headers (non-spec api) + * + * @return Object + */ + raw() { + return this[MAP]; + } + + /** + * Get an iterator on keys. + * + * @return Iterator + */ + keys() { + return createHeadersIterator(this, 'key'); + } + + /** + * Get an iterator on values. + * + * @return Iterator + */ + values() { + return createHeadersIterator(this, 'value'); + } + + /** + * Get an iterator on entries. + * + * This is the default iterator of the Headers object. + * + * @return Iterator + */ + [Symbol.iterator]() { + return createHeadersIterator(this, 'key+value'); + } +} +Headers.prototype.entries = Headers.prototype[Symbol.iterator]; + +Object.defineProperty(Headers.prototype, Symbol.toStringTag, { + value: 'Headers', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Headers.prototype, { + get: { enumerable: true }, + forEach: { enumerable: true }, + set: { enumerable: true }, + append: { enumerable: true }, + has: { enumerable: true }, + delete: { enumerable: true }, + keys: { enumerable: true }, + values: { enumerable: true }, + entries: { enumerable: true } +}); + +function getHeaders(headers) { + let kind = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'key+value'; + + const keys = Object.keys(headers[MAP]).sort(); + return keys.map(kind === 'key' ? function (k) { + return k.toLowerCase(); + } : kind === 'value' ? function (k) { + return headers[MAP][k].join(', '); + } : function (k) { + return [k.toLowerCase(), headers[MAP][k].join(', ')]; + }); +} + +const INTERNAL = Symbol('internal'); + +function createHeadersIterator(target, kind) { + const iterator = Object.create(HeadersIteratorPrototype); + iterator[INTERNAL] = { + target, + kind, + index: 0 + }; + return iterator; +} + +const HeadersIteratorPrototype = Object.setPrototypeOf({ + next() { + // istanbul ignore if + if (!this || Object.getPrototypeOf(this) !== HeadersIteratorPrototype) { + throw new TypeError('Value of `this` is not a HeadersIterator'); + } + + var _INTERNAL = this[INTERNAL]; + const target = _INTERNAL.target, + kind = _INTERNAL.kind, + index = _INTERNAL.index; + + const values = getHeaders(target, kind); + const len = values.length; + if (index >= len) { + return { + value: undefined, + done: true + }; + } + + this[INTERNAL].index = index + 1; + + return { + value: values[index], + done: false + }; + } +}, Object.getPrototypeOf(Object.getPrototypeOf([][Symbol.iterator]()))); + +Object.defineProperty(HeadersIteratorPrototype, Symbol.toStringTag, { + value: 'HeadersIterator', + writable: false, + enumerable: false, + configurable: true +}); + +/** + * Export the Headers object in a form that Node.js can consume. + * + * @param Headers headers + * @return Object + */ +function exportNodeCompatibleHeaders(headers) { + const obj = Object.assign({ __proto__: null }, headers[MAP]); + + // http.request() only supports string as Host header. This hack makes + // specifying custom Host header possible. + const hostHeaderKey = find(headers[MAP], 'Host'); + if (hostHeaderKey !== undefined) { + obj[hostHeaderKey] = obj[hostHeaderKey][0]; + } + + return obj; +} + +/** + * Create a Headers object from an object of headers, ignoring those that do + * not conform to HTTP grammar productions. + * + * @param Object obj Object of headers + * @return Headers + */ +function createHeadersLenient(obj) { + const headers = new Headers(); + for (const name of Object.keys(obj)) { + if (invalidTokenRegex.test(name)) { + continue; + } + if (Array.isArray(obj[name])) { + for (const val of obj[name]) { + if (invalidHeaderCharRegex.test(val)) { + continue; + } + if (headers[MAP][name] === undefined) { + headers[MAP][name] = [val]; + } else { + headers[MAP][name].push(val); + } + } + } else if (!invalidHeaderCharRegex.test(obj[name])) { + headers[MAP][name] = [obj[name]]; + } + } + return headers; +} + +const INTERNALS$1 = Symbol('Response internals'); + +// fix an issue where "STATUS_CODES" aren't a named export for node <10 +const STATUS_CODES = http.STATUS_CODES; + +/** + * Response class + * + * @param Stream body Readable stream + * @param Object opts Response options + * @return Void + */ +class Response { + constructor() { + let body = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + let opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + Body.call(this, body, opts); + + const status = opts.status || 200; + const headers = new Headers(opts.headers); + + if (body != null && !headers.has('Content-Type')) { + const contentType = extractContentType(body); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + this[INTERNALS$1] = { + url: opts.url, + status, + statusText: opts.statusText || STATUS_CODES[status], + headers, + counter: opts.counter + }; + } + + get url() { + return this[INTERNALS$1].url || ''; + } + + get status() { + return this[INTERNALS$1].status; + } + + /** + * Convenience property representing if the request ended normally + */ + get ok() { + return this[INTERNALS$1].status >= 200 && this[INTERNALS$1].status < 300; + } + + get redirected() { + return this[INTERNALS$1].counter > 0; + } + + get statusText() { + return this[INTERNALS$1].statusText; + } + + get headers() { + return this[INTERNALS$1].headers; + } + + /** + * Clone this response + * + * @return Response + */ + clone() { + return new Response(clone(this), { + url: this.url, + status: this.status, + statusText: this.statusText, + headers: this.headers, + ok: this.ok, + redirected: this.redirected + }); + } +} + +Body.mixIn(Response.prototype); + +Object.defineProperties(Response.prototype, { + url: { enumerable: true }, + status: { enumerable: true }, + ok: { enumerable: true }, + redirected: { enumerable: true }, + statusText: { enumerable: true }, + headers: { enumerable: true }, + clone: { enumerable: true } +}); + +Object.defineProperty(Response.prototype, Symbol.toStringTag, { + value: 'Response', + writable: false, + enumerable: false, + configurable: true +}); + +const INTERNALS$2 = Symbol('Request internals'); +const URL = Url.URL || whatwgUrl.URL; + +// fix an issue where "format", "parse" aren't a named export for node <10 +const parse_url = Url.parse; +const format_url = Url.format; + +/** + * Wrapper around `new URL` to handle arbitrary URLs + * + * @param {string} urlStr + * @return {void} + */ +function parseURL(urlStr) { + /* + Check whether the URL is absolute or not + Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 + Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 + */ + if (/^[a-zA-Z][a-zA-Z\d+\-.]*:/.exec(urlStr)) { + urlStr = new URL(urlStr).toString(); + } + + // Fallback to old implementation for arbitrary URLs + return parse_url(urlStr); +} + +const streamDestructionSupported = 'destroy' in Stream.Readable.prototype; + +/** + * Check if a value is an instance of Request. + * + * @param Mixed input + * @return Boolean + */ +function isRequest(input) { + return typeof input === 'object' && typeof input[INTERNALS$2] === 'object'; +} + +function isAbortSignal(signal) { + const proto = signal && typeof signal === 'object' && Object.getPrototypeOf(signal); + return !!(proto && proto.constructor.name === 'AbortSignal'); +} + +/** + * Request class + * + * @param Mixed input Url or Request instance + * @param Object init Custom options + * @return Void + */ +class Request { + constructor(input) { + let init = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + let parsedURL; + + // normalize input + if (!isRequest(input)) { + if (input && input.href) { + // in order to support Node.js' Url objects; though WHATWG's URL objects + // will fall into this branch also (since their `toString()` will return + // `href` property anyway) + parsedURL = parseURL(input.href); + } else { + // coerce input to a string before attempting to parse + parsedURL = parseURL(`${input}`); + } + input = {}; + } else { + parsedURL = parseURL(input.url); + } + + let method = init.method || input.method || 'GET'; + method = method.toUpperCase(); + + if ((init.body != null || isRequest(input) && input.body !== null) && (method === 'GET' || method === 'HEAD')) { + throw new TypeError('Request with GET/HEAD method cannot have body'); + } + + let inputBody = init.body != null ? init.body : isRequest(input) && input.body !== null ? clone(input) : null; + + Body.call(this, inputBody, { + timeout: init.timeout || input.timeout || 0, + size: init.size || input.size || 0 + }); + + const headers = new Headers(init.headers || input.headers || {}); + + if (inputBody != null && !headers.has('Content-Type')) { + const contentType = extractContentType(inputBody); + if (contentType) { + headers.append('Content-Type', contentType); + } + } + + let signal = isRequest(input) ? input.signal : null; + if ('signal' in init) signal = init.signal; + + if (signal != null && !isAbortSignal(signal)) { + throw new TypeError('Expected signal to be an instanceof AbortSignal'); + } + + this[INTERNALS$2] = { + method, + redirect: init.redirect || input.redirect || 'follow', + headers, + parsedURL, + signal + }; + + // node-fetch-only options + this.follow = init.follow !== undefined ? init.follow : input.follow !== undefined ? input.follow : 20; + this.compress = init.compress !== undefined ? init.compress : input.compress !== undefined ? input.compress : true; + this.counter = init.counter || input.counter || 0; + this.agent = init.agent || input.agent; + } + + get method() { + return this[INTERNALS$2].method; + } + + get url() { + return format_url(this[INTERNALS$2].parsedURL); + } + + get headers() { + return this[INTERNALS$2].headers; + } + + get redirect() { + return this[INTERNALS$2].redirect; + } + + get signal() { + return this[INTERNALS$2].signal; + } + + /** + * Clone this request + * + * @return Request + */ + clone() { + return new Request(this); + } +} + +Body.mixIn(Request.prototype); + +Object.defineProperty(Request.prototype, Symbol.toStringTag, { + value: 'Request', + writable: false, + enumerable: false, + configurable: true +}); + +Object.defineProperties(Request.prototype, { + method: { enumerable: true }, + url: { enumerable: true }, + headers: { enumerable: true }, + redirect: { enumerable: true }, + clone: { enumerable: true }, + signal: { enumerable: true } +}); + +/** + * Convert a Request to Node.js http request options. + * + * @param Request A Request instance + * @return Object The options object to be passed to http.request + */ +function getNodeRequestOptions(request) { + const parsedURL = request[INTERNALS$2].parsedURL; + const headers = new Headers(request[INTERNALS$2].headers); + + // fetch step 1.3 + if (!headers.has('Accept')) { + headers.set('Accept', '*/*'); + } + + // Basic fetch + if (!parsedURL.protocol || !parsedURL.hostname) { + throw new TypeError('Only absolute URLs are supported'); + } + + if (!/^https?:$/.test(parsedURL.protocol)) { + throw new TypeError('Only HTTP(S) protocols are supported'); + } + + if (request.signal && request.body instanceof Stream.Readable && !streamDestructionSupported) { + throw new Error('Cancellation of streamed requests with AbortSignal is not supported in node < 8'); + } + + // HTTP-network-or-cache fetch steps 2.4-2.7 + let contentLengthValue = null; + if (request.body == null && /^(POST|PUT)$/i.test(request.method)) { + contentLengthValue = '0'; + } + if (request.body != null) { + const totalBytes = getTotalBytes(request); + if (typeof totalBytes === 'number') { + contentLengthValue = String(totalBytes); + } + } + if (contentLengthValue) { + headers.set('Content-Length', contentLengthValue); + } + + // HTTP-network-or-cache fetch step 2.11 + if (!headers.has('User-Agent')) { + headers.set('User-Agent', 'node-fetch/1.0 (+https://github.com/bitinn/node-fetch)'); + } + + // HTTP-network-or-cache fetch step 2.15 + if (request.compress && !headers.has('Accept-Encoding')) { + headers.set('Accept-Encoding', 'gzip,deflate'); + } + + let agent = request.agent; + if (typeof agent === 'function') { + agent = agent(parsedURL); + } + + if (!headers.has('Connection') && !agent) { + headers.set('Connection', 'close'); + } + + // HTTP-network fetch step 4.2 + // chunked encoding is handled by Node.js + + return Object.assign({}, parsedURL, { + method: request.method, + headers: exportNodeCompatibleHeaders(headers), + agent + }); +} + +/** + * abort-error.js + * + * AbortError interface for cancelled requests + */ + +/** + * Create AbortError instance + * + * @param String message Error message for human + * @return AbortError + */ +function AbortError(message) { + Error.call(this, message); + + this.type = 'aborted'; + this.message = message; + + // hide custom error implementation details from end-users + Error.captureStackTrace(this, this.constructor); +} + +AbortError.prototype = Object.create(Error.prototype); +AbortError.prototype.constructor = AbortError; +AbortError.prototype.name = 'AbortError'; + +const URL$1 = Url.URL || whatwgUrl.URL; + +// fix an issue where "PassThrough", "resolve" aren't a named export for node <10 +const PassThrough$1 = Stream.PassThrough; + +const isDomainOrSubdomain = function isDomainOrSubdomain(destination, original) { + const orig = new URL$1(original).hostname; + const dest = new URL$1(destination).hostname; + + return orig === dest || orig[orig.length - dest.length - 1] === '.' && orig.endsWith(dest); +}; + +/** + * isSameProtocol reports whether the two provided URLs use the same protocol. + * + * Both domains must already be in canonical form. + * @param {string|URL} original + * @param {string|URL} destination + */ +const isSameProtocol = function isSameProtocol(destination, original) { + const orig = new URL$1(original).protocol; + const dest = new URL$1(destination).protocol; + + return orig === dest; +}; + +/** + * Fetch function + * + * @param Mixed url Absolute url or Request instance + * @param Object opts Fetch options + * @return Promise + */ +function fetch(url, opts) { + + // allow custom promise + if (!fetch.Promise) { + throw new Error('native promise missing, set fetch.Promise to your favorite alternative'); + } + + Body.Promise = fetch.Promise; + + // wrap http.request into fetch + return new fetch.Promise(function (resolve, reject) { + // build request object + const request = new Request(url, opts); + const options = getNodeRequestOptions(request); + + const send = (options.protocol === 'https:' ? https : http).request; + const signal = request.signal; + + let response = null; + + const abort = function abort() { + let error = new AbortError('The user aborted a request.'); + reject(error); + if (request.body && request.body instanceof Stream.Readable) { + destroyStream(request.body, error); + } + if (!response || !response.body) return; + response.body.emit('error', error); + }; + + if (signal && signal.aborted) { + abort(); + return; + } + + const abortAndFinalize = function abortAndFinalize() { + abort(); + finalize(); + }; + + // send request + const req = send(options); + let reqTimeout; + + if (signal) { + signal.addEventListener('abort', abortAndFinalize); + } + + function finalize() { + req.abort(); + if (signal) signal.removeEventListener('abort', abortAndFinalize); + clearTimeout(reqTimeout); + } + + if (request.timeout) { + req.once('socket', function (socket) { + reqTimeout = setTimeout(function () { + reject(new FetchError(`network timeout at: ${request.url}`, 'request-timeout')); + finalize(); + }, request.timeout); + }); + } + + req.on('error', function (err) { + reject(new FetchError(`request to ${request.url} failed, reason: ${err.message}`, 'system', err)); + + if (response && response.body) { + destroyStream(response.body, err); + } + + finalize(); + }); + + fixResponseChunkedTransferBadEnding(req, function (err) { + if (signal && signal.aborted) { + return; + } + + if (response && response.body) { + destroyStream(response.body, err); + } + }); + + /* c8 ignore next 18 */ + if (parseInt(process.version.substring(1)) < 14) { + // Before Node.js 14, pipeline() does not fully support async iterators and does not always + // properly handle when the socket close/end events are out of order. + req.on('socket', function (s) { + s.addListener('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = s.listenerCount('data') > 0; + + // if end happened before close but the socket didn't emit an error, do it now + if (response && hasDataListener && !hadError && !(signal && signal.aborted)) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + response.body.emit('error', err); + } + }); + }); + } + + req.on('response', function (res) { + clearTimeout(reqTimeout); + + const headers = createHeadersLenient(res.headers); + + // HTTP fetch step 5 + if (fetch.isRedirect(res.statusCode)) { + // HTTP fetch step 5.2 + const location = headers.get('Location'); + + // HTTP fetch step 5.3 + let locationURL = null; + try { + locationURL = location === null ? null : new URL$1(location, request.url).toString(); + } catch (err) { + // error here can only be invalid URL in Location: header + // do not throw when options.redirect == manual + // let the user extract the errorneous redirect URL + if (request.redirect !== 'manual') { + reject(new FetchError(`uri requested responds with an invalid redirect URL: ${location}`, 'invalid-redirect')); + finalize(); + return; + } + } + + // HTTP fetch step 5.5 + switch (request.redirect) { + case 'error': + reject(new FetchError(`uri requested responds with a redirect, redirect mode is set to error: ${request.url}`, 'no-redirect')); + finalize(); + return; + case 'manual': + // node-fetch-specific step: make manual redirect a bit easier to use by setting the Location header value to the resolved URL. + if (locationURL !== null) { + // handle corrupted header + try { + headers.set('Location', locationURL); + } catch (err) { + // istanbul ignore next: nodejs server prevent invalid response headers, we can't test this through normal request + reject(err); + } + } + break; + case 'follow': + // HTTP-redirect fetch step 2 + if (locationURL === null) { + break; + } + + // HTTP-redirect fetch step 5 + if (request.counter >= request.follow) { + reject(new FetchError(`maximum redirect reached at: ${request.url}`, 'max-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 6 (counter increment) + // Create a new Request object. + const requestOpts = { + headers: new Headers(request.headers), + follow: request.follow, + counter: request.counter + 1, + agent: request.agent, + compress: request.compress, + method: request.method, + body: request.body, + signal: request.signal, + timeout: request.timeout, + size: request.size + }; + + if (!isDomainOrSubdomain(request.url, locationURL) || !isSameProtocol(request.url, locationURL)) { + for (const name of ['authorization', 'www-authenticate', 'cookie', 'cookie2']) { + requestOpts.headers.delete(name); + } + } + + // HTTP-redirect fetch step 9 + if (res.statusCode !== 303 && request.body && getTotalBytes(request) === null) { + reject(new FetchError('Cannot follow redirect with body being a readable stream', 'unsupported-redirect')); + finalize(); + return; + } + + // HTTP-redirect fetch step 11 + if (res.statusCode === 303 || (res.statusCode === 301 || res.statusCode === 302) && request.method === 'POST') { + requestOpts.method = 'GET'; + requestOpts.body = undefined; + requestOpts.headers.delete('content-length'); + } + + // HTTP-redirect fetch step 15 + resolve(fetch(new Request(locationURL, requestOpts))); + finalize(); + return; + } + } + + // prepare response + res.once('end', function () { + if (signal) signal.removeEventListener('abort', abortAndFinalize); + }); + let body = res.pipe(new PassThrough$1()); + + const response_options = { + url: request.url, + status: res.statusCode, + statusText: res.statusMessage, + headers: headers, + size: request.size, + timeout: request.timeout, + counter: request.counter + }; + + // HTTP-network fetch step 12.1.1.3 + const codings = headers.get('Content-Encoding'); + + // HTTP-network fetch step 12.1.1.4: handle content codings + + // in following scenarios we ignore compression support + // 1. compression support is disabled + // 2. HEAD request + // 3. no Content-Encoding header + // 4. no content response (204) + // 5. content not modified response (304) + if (!request.compress || request.method === 'HEAD' || codings === null || res.statusCode === 204 || res.statusCode === 304) { + response = new Response(body, response_options); + resolve(response); + return; + } + + // For Node v6+ + // Be less strict when decoding compressed responses, since sometimes + // servers send slightly invalid responses that are still accepted + // by common browsers. + // Always using Z_SYNC_FLUSH is what cURL does. + const zlibOptions = { + flush: zlib.Z_SYNC_FLUSH, + finishFlush: zlib.Z_SYNC_FLUSH + }; + + // for gzip + if (codings == 'gzip' || codings == 'x-gzip') { + body = body.pipe(zlib.createGunzip(zlibOptions)); + response = new Response(body, response_options); + resolve(response); + return; + } + + // for deflate + if (codings == 'deflate' || codings == 'x-deflate') { + // handle the infamous raw deflate response from old servers + // a hack for old IIS and Apache servers + const raw = res.pipe(new PassThrough$1()); + raw.once('data', function (chunk) { + // see http://stackoverflow.com/questions/37519828 + if ((chunk[0] & 0x0F) === 0x08) { + body = body.pipe(zlib.createInflate()); + } else { + body = body.pipe(zlib.createInflateRaw()); + } + response = new Response(body, response_options); + resolve(response); + }); + raw.on('end', function () { + // some old IIS servers return zero-length OK deflate responses, so 'data' is never emitted. + if (!response) { + response = new Response(body, response_options); + resolve(response); + } + }); + return; + } + + // for br + if (codings == 'br' && typeof zlib.createBrotliDecompress === 'function') { + body = body.pipe(zlib.createBrotliDecompress()); + response = new Response(body, response_options); + resolve(response); + return; + } + + // otherwise, use response as-is + response = new Response(body, response_options); + resolve(response); + }); + + writeToStream(req, request); + }); +} +function fixResponseChunkedTransferBadEnding(request, errorCallback) { + let socket; + + request.on('socket', function (s) { + socket = s; + }); + + request.on('response', function (response) { + const headers = response.headers; + + if (headers['transfer-encoding'] === 'chunked' && !headers['content-length']) { + response.once('close', function (hadError) { + // if a data listener is still present we didn't end cleanly + const hasDataListener = socket.listenerCount('data') > 0; + + if (hasDataListener && !hadError) { + const err = new Error('Premature close'); + err.code = 'ERR_STREAM_PREMATURE_CLOSE'; + errorCallback(err); + } + }); + } + }); +} + +function destroyStream(stream, err) { + if (stream.destroy) { + stream.destroy(err); + } else { + // node < 8 + stream.emit('error', err); + stream.end(); + } +} + +/** + * Redirect code matching + * + * @param Number code Status code + * @return Boolean + */ +fetch.isRedirect = function (code) { + return code === 301 || code === 302 || code === 303 || code === 307 || code === 308; +}; + +// expose Promise +fetch.Promise = global.Promise; + +module.exports = exports = fetch; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = exports; +exports.Headers = Headers; +exports.Request = Request; +exports.Response = Response; +exports.FetchError = FetchError; + + +/***/ }), + +/***/ 80666: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +var wrappy = __nccwpck_require__(67712) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f +} + + +/***/ }), + +/***/ 35810: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +var parseUrl = (__nccwpck_require__(57310).parse); + +var DEFAULT_PORTS = { + ftp: 21, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443, +}; + +var stringEndsWith = String.prototype.endsWith || function(s) { + return s.length <= this.length && + this.indexOf(s, this.length - s.length) !== -1; +}; + +/** + * @param {string|object} url - The URL, or the result from url.parse. + * @return {string} The URL of the proxy that should handle the request to the + * given URL. If no proxy is set, this will be an empty string. + */ +function getProxyForUrl(url) { + var parsedUrl = typeof url === 'string' ? parseUrl(url) : url || {}; + var proto = parsedUrl.protocol; + var hostname = parsedUrl.host; + var port = parsedUrl.port; + if (typeof hostname !== 'string' || !hostname || typeof proto !== 'string') { + return ''; // Don't proxy URLs without a valid scheme or host. + } + + proto = proto.split(':', 1)[0]; + // Stripping ports in this way instead of using parsedUrl.hostname to make + // sure that the brackets around IPv6 addresses are kept. + hostname = hostname.replace(/:\d*$/, ''); + port = parseInt(port) || DEFAULT_PORTS[proto] || 0; + if (!shouldProxy(hostname, port)) { + return ''; // Don't proxy URLs that match NO_PROXY. + } + + var proxy = + getEnv('npm_config_' + proto + '_proxy') || + getEnv(proto + '_proxy') || + getEnv('npm_config_proxy') || + getEnv('all_proxy'); + if (proxy && proxy.indexOf('://') === -1) { + // Missing scheme in proxy, default to the requested URL's scheme. + proxy = proto + '://' + proxy; + } + return proxy; +} + +/** + * Determines whether a given URL should be proxied. + * + * @param {string} hostname - The host name of the URL. + * @param {number} port - The effective port of the URL. + * @returns {boolean} Whether the given URL should be proxied. + * @private + */ +function shouldProxy(hostname, port) { + var NO_PROXY = + (getEnv('npm_config_no_proxy') || getEnv('no_proxy')).toLowerCase(); + if (!NO_PROXY) { + return true; // Always proxy if NO_PROXY is not set. + } + if (NO_PROXY === '*') { + return false; // Never proxy if wildcard is set. + } + + return NO_PROXY.split(/[,\s]/).every(function(proxy) { + if (!proxy) { + return true; // Skip zero-length hosts. + } + var parsedProxy = proxy.match(/^(.+):(\d+)$/); + var parsedProxyHostname = parsedProxy ? parsedProxy[1] : proxy; + var parsedProxyPort = parsedProxy ? parseInt(parsedProxy[2]) : 0; + if (parsedProxyPort && parsedProxyPort !== port) { + return true; // Skip if ports don't match. + } + + if (!/^[.*]/.test(parsedProxyHostname)) { + // No wildcards, so stop proxying if there is an exact match. + return hostname !== parsedProxyHostname; + } + + if (parsedProxyHostname.charAt(0) === '*') { + // Remove leading wildcard. + parsedProxyHostname = parsedProxyHostname.slice(1); + } + // Stop proxying if the hostname ends with the no_proxy host. + return !stringEndsWith.call(hostname, parsedProxyHostname); + }); +} + +/** + * Get the value for an environment variable. + * + * @param {string} key - The name of the environment variable. + * @return {string} The value of the environment variable. + * @private + */ +function getEnv(key) { + return process.env[key.toLowerCase()] || process.env[key.toUpperCase()] || ''; +} + +exports.getProxyForUrl = getProxyForUrl; + + +/***/ }), + +/***/ 76394: +/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +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.createCluster = exports.createClient = void 0; +const client_1 = __nccwpck_require__(95077); +const bloom_1 = __nccwpck_require__(375); +const graph_1 = __nccwpck_require__(92971); +const json_1 = __nccwpck_require__(27798); +const search_1 = __nccwpck_require__(78073); +const time_series_1 = __nccwpck_require__(26941); +__exportStar(__nccwpck_require__(95077), exports); +__exportStar(__nccwpck_require__(375), exports); +__exportStar(__nccwpck_require__(92971), exports); +__exportStar(__nccwpck_require__(27798), exports); +__exportStar(__nccwpck_require__(78073), exports); +__exportStar(__nccwpck_require__(26941), exports); +const modules = { + ...bloom_1.default, + graph: graph_1.default, + json: json_1.default, + ft: search_1.default, + ts: time_series_1.default +}; +function createClient(options) { + return (0, client_1.createClient)({ + ...options, + modules: { + ...modules, + ...options?.modules + } + }); +} +exports.createClient = createClient; +function createCluster(options) { + return (0, client_1.createCluster)({ + ...options, + modules: { + ...modules, + ...options?.modules + } + }); +} +exports.createCluster = createCluster; + + +/***/ }), + +/***/ 37601: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +var punycode = __nccwpck_require__(85477); +var mappingTable = __nccwpck_require__(72020); + +var PROCESSING_OPTIONS = { + TRANSITIONAL: 0, + NONTRANSITIONAL: 1 +}; + +function normalize(str) { // fix bug in v8 + return str.split('\u0000').map(function (s) { return s.normalize('NFC'); }).join('\u0000'); +} + +function findStatus(val) { + var start = 0; + var end = mappingTable.length - 1; + + while (start <= end) { + var mid = Math.floor((start + end) / 2); + + var target = mappingTable[mid]; + if (target[0][0] <= val && target[0][1] >= val) { + return target; + } else if (target[0][0] > val) { + end = mid - 1; + } else { + start = mid + 1; + } + } + + return null; +} + +var regexAstralSymbols = /[\uD800-\uDBFF][\uDC00-\uDFFF]/g; + +function countSymbols(string) { + return string + // replace every surrogate pair with a BMP symbol + .replace(regexAstralSymbols, '_') + // then get the length + .length; +} + +function mapChars(domain_name, useSTD3, processing_option) { + var hasError = false; + var processed = ""; + + var len = countSymbols(domain_name); + for (var i = 0; i < len; ++i) { + var codePoint = domain_name.codePointAt(i); + var status = findStatus(codePoint); + + switch (status[1]) { + case "disallowed": + hasError = true; + processed += String.fromCodePoint(codePoint); + break; + case "ignored": + break; + case "mapped": + processed += String.fromCodePoint.apply(String, status[2]); + break; + case "deviation": + if (processing_option === PROCESSING_OPTIONS.TRANSITIONAL) { + processed += String.fromCodePoint.apply(String, status[2]); + } else { + processed += String.fromCodePoint(codePoint); + } + break; + case "valid": + processed += String.fromCodePoint(codePoint); + break; + case "disallowed_STD3_mapped": + if (useSTD3) { + hasError = true; + processed += String.fromCodePoint(codePoint); + } else { + processed += String.fromCodePoint.apply(String, status[2]); + } + break; + case "disallowed_STD3_valid": + if (useSTD3) { + hasError = true; + } + + processed += String.fromCodePoint(codePoint); + break; + } + } + + return { + string: processed, + error: hasError + }; +} + +var combiningMarksRegex = /[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08E4-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u18A9\u1920-\u192B\u1930-\u193B\u19B0-\u19C0\u19C8\u19C9\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFC-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C4\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2D]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC00-\uDC02\uDC38-\uDC46\uDC7F-\uDC82\uDCB0-\uDCBA\uDD00-\uDD02\uDD27-\uDD34\uDD73\uDD80-\uDD82\uDDB3-\uDDC0\uDE2C-\uDE37\uDEDF-\uDEEA\uDF01-\uDF03\uDF3C\uDF3E-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF57\uDF62\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDCB0-\uDCC3\uDDAF-\uDDB5\uDDB8-\uDDC0\uDE30-\uDE40\uDEAB-\uDEB7]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF51-\uDF7E\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD83A[\uDCD0-\uDCD6]|\uDB40[\uDD00-\uDDEF]/; + +function validateLabel(label, processing_option) { + if (label.substr(0, 4) === "xn--") { + label = punycode.toUnicode(label); + processing_option = PROCESSING_OPTIONS.NONTRANSITIONAL; + } + + var error = false; + + if (normalize(label) !== label || + (label[3] === "-" && label[4] === "-") || + label[0] === "-" || label[label.length - 1] === "-" || + label.indexOf(".") !== -1 || + label.search(combiningMarksRegex) === 0) { + error = true; + } + + var len = countSymbols(label); + for (var i = 0; i < len; ++i) { + var status = findStatus(label.codePointAt(i)); + if ((processing === PROCESSING_OPTIONS.TRANSITIONAL && status[1] !== "valid") || + (processing === PROCESSING_OPTIONS.NONTRANSITIONAL && + status[1] !== "valid" && status[1] !== "deviation")) { + error = true; + break; + } + } + + return { + label: label, + error: error + }; +} + +function processing(domain_name, useSTD3, processing_option) { + var result = mapChars(domain_name, useSTD3, processing_option); + result.string = normalize(result.string); + + var labels = result.string.split("."); + for (var i = 0; i < labels.length; ++i) { + try { + var validation = validateLabel(labels[i]); + labels[i] = validation.label; + result.error = result.error || validation.error; + } catch(e) { + result.error = true; + } + } + + return { + string: labels.join("."), + error: result.error + }; +} + +module.exports.toASCII = function(domain_name, useSTD3, processing_option, verifyDnsLength) { + var result = processing(domain_name, useSTD3, processing_option); + var labels = result.string.split("."); + labels = labels.map(function(l) { + try { + return punycode.toASCII(l); + } catch(e) { + result.error = true; + return l; + } + }); + + if (verifyDnsLength) { + var total = labels.slice(0, labels.length - 1).join(".").length; + if (total.length > 253 || total.length === 0) { + result.error = true; + } + + for (var i=0; i < labels.length; ++i) { + if (labels.length > 63 || labels.length === 0) { + result.error = true; + break; + } + } + } + + if (result.error) return null; + return labels.join("."); +}; + +module.exports.toUnicode = function(domain_name, useSTD3) { + var result = processing(domain_name, useSTD3, PROCESSING_OPTIONS.NONTRANSITIONAL); + + return { + domain: result.string, + error: result.error + }; +}; + +module.exports.PROCESSING_OPTIONS = PROCESSING_OPTIONS; + + +/***/ }), + +/***/ 43010: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +module.exports = __nccwpck_require__(89462); + + +/***/ }), + +/***/ 89462: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +var net = __nccwpck_require__(41808); +var tls = __nccwpck_require__(24404); +var http = __nccwpck_require__(13685); +var https = __nccwpck_require__(95687); +var events = __nccwpck_require__(82361); +var assert = __nccwpck_require__(39491); +var util = __nccwpck_require__(73837); + + +exports.httpOverHttp = httpOverHttp; +exports.httpsOverHttp = httpsOverHttp; +exports.httpOverHttps = httpOverHttps; +exports.httpsOverHttps = httpsOverHttps; + + +function httpOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + return agent; +} + +function httpsOverHttp(options) { + var agent = new TunnelingAgent(options); + agent.request = http.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + +function httpOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + return agent; +} + +function httpsOverHttps(options) { + var agent = new TunnelingAgent(options); + agent.request = https.request; + agent.createSocket = createSecureSocket; + agent.defaultPort = 443; + return agent; +} + + +function TunnelingAgent(options) { + var self = this; + self.options = options || {}; + self.proxyOptions = self.options.proxy || {}; + self.maxSockets = self.options.maxSockets || http.Agent.defaultMaxSockets; + self.requests = []; + self.sockets = []; + + self.on('free', function onFree(socket, host, port, localAddress) { + var options = toOptions(host, port, localAddress); + for (var i = 0, len = self.requests.length; i < len; ++i) { + var pending = self.requests[i]; + if (pending.host === options.host && pending.port === options.port) { + // Detect the request to connect same origin server, + // reuse the connection. + self.requests.splice(i, 1); + pending.request.onSocket(socket); + return; + } + } + socket.destroy(); + self.removeSocket(socket); + }); +} +util.inherits(TunnelingAgent, events.EventEmitter); + +TunnelingAgent.prototype.addRequest = function addRequest(req, host, port, localAddress) { + var self = this; + var options = mergeOptions({request: req}, self.options, toOptions(host, port, localAddress)); + + if (self.sockets.length >= this.maxSockets) { + // We are over limit so we'll add it to the queue. + self.requests.push(options); + return; + } + + // If we are under maxSockets create a new one. + self.createSocket(options, function(socket) { + socket.on('free', onFree); + socket.on('close', onCloseOrRemove); + socket.on('agentRemove', onCloseOrRemove); + req.onSocket(socket); + + function onFree() { + self.emit('free', socket, options); + } + + function onCloseOrRemove(err) { + self.removeSocket(socket); + socket.removeListener('free', onFree); + socket.removeListener('close', onCloseOrRemove); + socket.removeListener('agentRemove', onCloseOrRemove); + } + }); +}; + +TunnelingAgent.prototype.createSocket = function createSocket(options, cb) { + var self = this; + var placeholder = {}; + self.sockets.push(placeholder); + + var connectOptions = mergeOptions({}, self.proxyOptions, { + method: 'CONNECT', + path: options.host + ':' + options.port, + agent: false, + headers: { + host: options.host + ':' + options.port + } + }); + if (options.localAddress) { + connectOptions.localAddress = options.localAddress; + } + if (connectOptions.proxyAuth) { + connectOptions.headers = connectOptions.headers || {}; + connectOptions.headers['Proxy-Authorization'] = 'Basic ' + + new Buffer(connectOptions.proxyAuth).toString('base64'); + } + + debug('making CONNECT request'); + var connectReq = self.request(connectOptions); + connectReq.useChunkedEncodingByDefault = false; // for v0.6 + connectReq.once('response', onResponse); // for v0.6 + connectReq.once('upgrade', onUpgrade); // for v0.6 + connectReq.once('connect', onConnect); // for v0.7 or later + connectReq.once('error', onError); + connectReq.end(); + + function onResponse(res) { + // Very hacky. This is necessary to avoid http-parser leaks. + res.upgrade = true; + } + + function onUpgrade(res, socket, head) { + // Hacky. + process.nextTick(function() { + onConnect(res, socket, head); + }); + } + + function onConnect(res, socket, head) { + connectReq.removeAllListeners(); + socket.removeAllListeners(); + + if (res.statusCode !== 200) { + debug('tunneling socket could not be established, statusCode=%d', + res.statusCode); + socket.destroy(); + var error = new Error('tunneling socket could not be established, ' + + 'statusCode=' + res.statusCode); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + if (head.length > 0) { + debug('got illegal response body from proxy'); + socket.destroy(); + var error = new Error('got illegal response body from proxy'); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + return; + } + debug('tunneling connection has established'); + self.sockets[self.sockets.indexOf(placeholder)] = socket; + return cb(socket); + } + + function onError(cause) { + connectReq.removeAllListeners(); + + debug('tunneling socket could not be established, cause=%s\n', + cause.message, cause.stack); + var error = new Error('tunneling socket could not be established, ' + + 'cause=' + cause.message); + error.code = 'ECONNRESET'; + options.request.emit('error', error); + self.removeSocket(placeholder); + } +}; + +TunnelingAgent.prototype.removeSocket = function removeSocket(socket) { + var pos = this.sockets.indexOf(socket) + if (pos === -1) { + return; + } + this.sockets.splice(pos, 1); + + var pending = this.requests.shift(); + if (pending) { + // If we have pending requests and a socket gets closed a new one + // needs to be created to take over in the pool for the one that closed. + this.createSocket(pending, function(socket) { + pending.request.onSocket(socket); + }); + } +}; + +function createSecureSocket(options, cb) { + var self = this; + TunnelingAgent.prototype.createSocket.call(self, options, function(socket) { + var hostHeader = options.request.getHeader('host'); + var tlsOptions = mergeOptions({}, self.options, { + socket: socket, + servername: hostHeader ? hostHeader.replace(/:.*$/, '') : options.host + }); + + // 0 is dummy port for v0.6 + var secureSocket = tls.connect(0, tlsOptions); + self.sockets[self.sockets.indexOf(socket)] = secureSocket; + cb(secureSocket); + }); +} + + +function toOptions(host, port, localAddress) { + if (typeof host === 'string') { // since v0.10 + return { + host: host, + port: port, + localAddress: localAddress + }; + } + return host; // for v0.11 or later +} + +function mergeOptions(target) { + for (var i = 1, len = arguments.length; i < len; ++i) { + var overrides = arguments[i]; + if (typeof overrides === 'object') { + var keys = Object.keys(overrides); + for (var j = 0, keyLen = keys.length; j < keyLen; ++j) { + var k = keys[j]; + if (overrides[k] !== undefined) { + target[k] = overrides[k]; + } + } + } + } + return target; +} + + +var debug; +if (process.env.NODE_DEBUG && /\btunnel\b/.test(process.env.NODE_DEBUG)) { + debug = function() { + var args = Array.prototype.slice.call(arguments); + if (typeof args[0] === 'string') { + args[0] = 'TUNNEL: ' + args[0]; + } else { + args.unshift('TUNNEL:'); + } + console.error.apply(console, args); + } +} else { + debug = function() {}; +} +exports.debug = debug; // for test + + +/***/ }), + +/***/ 28933: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +function getUserAgent() { + if (typeof navigator === "object" && "userAgent" in navigator) { + return navigator.userAgent; + } + + if (typeof process === "object" && "version" in process) { + return `Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`; + } + + return ""; +} + +exports.getUserAgent = getUserAgent; +//# sourceMappingURL=index.js.map + + +/***/ }), + +/***/ 99657: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "v1", ({ + enumerable: true, + get: function () { + return _v.default; + } +})); +Object.defineProperty(exports, "v3", ({ + enumerable: true, + get: function () { + return _v2.default; + } +})); +Object.defineProperty(exports, "v4", ({ + enumerable: true, + get: function () { + return _v3.default; + } +})); +Object.defineProperty(exports, "v5", ({ + enumerable: true, + get: function () { + return _v4.default; + } +})); +Object.defineProperty(exports, "NIL", ({ + enumerable: true, + get: function () { + return _nil.default; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _version.default; + } +})); +Object.defineProperty(exports, "validate", ({ + enumerable: true, + get: function () { + return _validate.default; + } +})); +Object.defineProperty(exports, "stringify", ({ + enumerable: true, + get: function () { + return _stringify.default; + } +})); +Object.defineProperty(exports, "parse", ({ + enumerable: true, + get: function () { + return _parse.default; + } +})); + +var _v = _interopRequireDefault(__nccwpck_require__(84095)); + +var _v2 = _interopRequireDefault(__nccwpck_require__(33913)); + +var _v3 = _interopRequireDefault(__nccwpck_require__(70544)); + +var _v4 = _interopRequireDefault(__nccwpck_require__(92122)); + +var _nil = _interopRequireDefault(__nccwpck_require__(28653)); + +var _version = _interopRequireDefault(__nccwpck_require__(25716)); + +var _validate = _interopRequireDefault(__nccwpck_require__(33792)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(4041)); + +var _parse = _interopRequireDefault(__nccwpck_require__(54813)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), + +/***/ 85611: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function md5(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('md5').update(bytes).digest(); +} + +var _default = md5; +exports["default"] = _default; + +/***/ }), + +/***/ 28653: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = '00000000-0000-0000-0000-000000000000'; +exports["default"] = _default; + +/***/ }), + +/***/ 54813: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(33792)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function parse(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + let v; + const arr = new Uint8Array(16); // Parse ########-....-....-....-............ + + arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24; + arr[1] = v >>> 16 & 0xff; + arr[2] = v >>> 8 & 0xff; + arr[3] = v & 0xff; // Parse ........-####-....-....-............ + + arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8; + arr[5] = v & 0xff; // Parse ........-....-####-....-............ + + arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8; + arr[7] = v & 0xff; // Parse ........-....-....-####-............ + + arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8; + arr[9] = v & 0xff; // Parse ........-....-....-....-############ + // (Use "/" to avoid 32-bit truncation when bit-shifting high-order bytes) + + arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff; + arr[11] = v / 0x100000000 & 0xff; + arr[12] = v >>> 24 & 0xff; + arr[13] = v >>> 16 & 0xff; + arr[14] = v >>> 8 & 0xff; + arr[15] = v & 0xff; + return arr; +} + +var _default = parse; +exports["default"] = _default; + +/***/ }), + +/***/ 32684: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; +var _default = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i; +exports["default"] = _default; + +/***/ }), + +/***/ 84720: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = rng; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const rnds8Pool = new Uint8Array(256); // # of random values to pre-allocate + +let poolPtr = rnds8Pool.length; + +function rng() { + if (poolPtr > rnds8Pool.length - 16) { + _crypto.default.randomFillSync(rnds8Pool); + + poolPtr = 0; + } + + return rnds8Pool.slice(poolPtr, poolPtr += 16); +} + +/***/ }), + +/***/ 47823: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _crypto = _interopRequireDefault(__nccwpck_require__(6113)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function sha1(bytes) { + if (Array.isArray(bytes)) { + bytes = Buffer.from(bytes); + } else if (typeof bytes === 'string') { + bytes = Buffer.from(bytes, 'utf8'); + } + + return _crypto.default.createHash('sha1').update(bytes).digest(); +} + +var _default = sha1; +exports["default"] = _default; + +/***/ }), + +/***/ 4041: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(33792)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX + */ +const byteToHex = []; + +for (let i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); +} + +function stringify(arr, offset = 0) { + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + const uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0, _validate.default)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + + return uuid; +} + +var _default = stringify; +exports["default"] = _default; + +/***/ }), + +/***/ 84095: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _rng = _interopRequireDefault(__nccwpck_require__(84720)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(4041)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html +let _nodeId; + +let _clockseq; // Previous uuid creation time + + +let _lastMSecs = 0; +let _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details + +function v1(options, buf, offset) { + let i = buf && offset || 0; + const b = buf || new Array(16); + options = options || {}; + let node = options.node || _nodeId; + let clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + + if (node == null || clockseq == null) { + const seedBytes = options.random || (options.rng || _rng.default)(); + + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]]; + } + + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } + } // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + + + let msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + + let nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs) + + const dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression + + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + + + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } // Per 4.2.1.2 Throw error if too many uuids are requested + + + if (nsecs >= 10000) { + throw new Error("uuid.v1(): Can't create more than 10M uuids/sec"); + } + + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + + msecs += 12219292800000; // `time_low` + + const tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; // `time_mid` + + const tmh = msecs / 0x100000000 * 10000 & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; // `time_high_and_version` + + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + + b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + + b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low` + + b[i++] = clockseq & 0xff; // `node` + + for (let n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } + + return buf || (0, _stringify.default)(b); +} + +var _default = v1; +exports["default"] = _default; + +/***/ }), + +/***/ 33913: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _v = _interopRequireDefault(__nccwpck_require__(54276)); + +var _md = _interopRequireDefault(__nccwpck_require__(85611)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v3 = (0, _v.default)('v3', 0x30, _md.default); +var _default = v3; +exports["default"] = _default; + +/***/ }), + +/***/ 54276: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = _default; +exports.URL = exports.DNS = void 0; + +var _stringify = _interopRequireDefault(__nccwpck_require__(4041)); + +var _parse = _interopRequireDefault(__nccwpck_require__(54813)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function stringToBytes(str) { + str = unescape(encodeURIComponent(str)); // UTF8 escape + + const bytes = []; + + for (let i = 0; i < str.length; ++i) { + bytes.push(str.charCodeAt(i)); + } + + return bytes; +} + +const DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'; +exports.DNS = DNS; +const URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'; +exports.URL = URL; + +function _default(name, version, hashfunc) { + function generateUUID(value, namespace, buf, offset) { + if (typeof value === 'string') { + value = stringToBytes(value); + } + + if (typeof namespace === 'string') { + namespace = (0, _parse.default)(namespace); + } + + if (namespace.length !== 16) { + throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)'); + } // Compute hash of namespace and value, Per 4.3 + // Future: Use spread syntax when supported on all platforms, e.g. `bytes = + // hashfunc([...namespace, ... value])` + + + let bytes = new Uint8Array(16 + value.length); + bytes.set(namespace); + bytes.set(value, namespace.length); + bytes = hashfunc(bytes); + bytes[6] = bytes[6] & 0x0f | version; + bytes[8] = bytes[8] & 0x3f | 0x80; + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = bytes[i]; + } + + return buf; + } + + return (0, _stringify.default)(bytes); + } // Function#name is not settable on some platforms (#270) + + + try { + generateUUID.name = name; // eslint-disable-next-line no-empty + } catch (err) {} // For CommonJS default export support + + + generateUUID.DNS = DNS; + generateUUID.URL = URL; + return generateUUID; +} + +/***/ }), + +/***/ 70544: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _rng = _interopRequireDefault(__nccwpck_require__(84720)); + +var _stringify = _interopRequireDefault(__nccwpck_require__(4041)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function v4(options, buf, offset) { + options = options || {}; + + const rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0; + + for (let i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; + } + + return buf; + } + + return (0, _stringify.default)(rnds); +} + +var _default = v4; +exports["default"] = _default; + +/***/ }), + +/***/ 92122: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _v = _interopRequireDefault(__nccwpck_require__(54276)); + +var _sha = _interopRequireDefault(__nccwpck_require__(47823)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const v5 = (0, _v.default)('v5', 0x50, _sha.default); +var _default = v5; +exports["default"] = _default; + +/***/ }), + +/***/ 33792: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _regex = _interopRequireDefault(__nccwpck_require__(32684)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function validate(uuid) { + return typeof uuid === 'string' && _regex.default.test(uuid); +} + +var _default = validate; +exports["default"] = _default; + +/***/ }), + +/***/ 25716: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports["default"] = void 0; + +var _validate = _interopRequireDefault(__nccwpck_require__(33792)); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function version(uuid) { + if (!(0, _validate.default)(uuid)) { + throw TypeError('Invalid UUID'); + } + + return parseInt(uuid.substr(14, 1), 16); +} + +var _default = version; +exports["default"] = _default; + +/***/ }), + +/***/ 49974: +/***/ ((module) => { + +"use strict"; + + +var conversions = {}; +module.exports = conversions; + +function sign(x) { + return x < 0 ? -1 : 1; +} + +function evenRound(x) { + // Round x to the nearest integer, choosing the even integer if it lies halfway between two. + if ((x % 1) === 0.5 && (x & 1) === 0) { // [even number].5; round down (i.e. floor) + return Math.floor(x); + } else { + return Math.round(x); + } +} + +function createNumberConversion(bitLength, typeOpts) { + if (!typeOpts.unsigned) { + --bitLength; + } + const lowerBound = typeOpts.unsigned ? 0 : -Math.pow(2, bitLength); + const upperBound = Math.pow(2, bitLength) - 1; + + const moduloVal = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength) : Math.pow(2, bitLength); + const moduloBound = typeOpts.moduloBitLength ? Math.pow(2, typeOpts.moduloBitLength - 1) : Math.pow(2, bitLength - 1); + + return function(V, opts) { + if (!opts) opts = {}; + + let x = +V; + + if (opts.enforceRange) { + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite number"); + } + + x = sign(x) * Math.floor(Math.abs(x)); + if (x < lowerBound || x > upperBound) { + throw new TypeError("Argument is not in byte range"); + } + + return x; + } + + if (!isNaN(x) && opts.clamp) { + x = evenRound(x); + + if (x < lowerBound) x = lowerBound; + if (x > upperBound) x = upperBound; + return x; + } + + if (!Number.isFinite(x) || x === 0) { + return 0; + } + + x = sign(x) * Math.floor(Math.abs(x)); + x = x % moduloVal; + + if (!typeOpts.unsigned && x >= moduloBound) { + return x - moduloVal; + } else if (typeOpts.unsigned) { + if (x < 0) { + x += moduloVal; + } else if (x === -0) { // don't return negative zero + return 0; + } + } + + return x; + } +} + +conversions["void"] = function () { + return undefined; +}; + +conversions["boolean"] = function (val) { + return !!val; +}; + +conversions["byte"] = createNumberConversion(8, { unsigned: false }); +conversions["octet"] = createNumberConversion(8, { unsigned: true }); + +conversions["short"] = createNumberConversion(16, { unsigned: false }); +conversions["unsigned short"] = createNumberConversion(16, { unsigned: true }); + +conversions["long"] = createNumberConversion(32, { unsigned: false }); +conversions["unsigned long"] = createNumberConversion(32, { unsigned: true }); + +conversions["long long"] = createNumberConversion(32, { unsigned: false, moduloBitLength: 64 }); +conversions["unsigned long long"] = createNumberConversion(32, { unsigned: true, moduloBitLength: 64 }); + +conversions["double"] = function (V) { + const x = +V; + + if (!Number.isFinite(x)) { + throw new TypeError("Argument is not a finite floating-point value"); + } + + return x; +}; + +conversions["unrestricted double"] = function (V) { + const x = +V; + + if (isNaN(x)) { + throw new TypeError("Argument is NaN"); + } + + return x; +}; + +// not quite valid, but good enough for JS +conversions["float"] = conversions["double"]; +conversions["unrestricted float"] = conversions["unrestricted double"]; + +conversions["DOMString"] = function (V, opts) { + if (!opts) opts = {}; + + if (opts.treatNullAsEmptyString && V === null) { + return ""; + } + + return String(V); +}; + +conversions["ByteString"] = function (V, opts) { + const x = String(V); + let c = undefined; + for (let i = 0; (c = x.codePointAt(i)) !== undefined; ++i) { + if (c > 255) { + throw new TypeError("Argument is not a valid bytestring"); + } + } + + return x; +}; + +conversions["USVString"] = function (V) { + const S = String(V); + const n = S.length; + const U = []; + for (let i = 0; i < n; ++i) { + const c = S.charCodeAt(i); + if (c < 0xD800 || c > 0xDFFF) { + U.push(String.fromCodePoint(c)); + } else if (0xDC00 <= c && c <= 0xDFFF) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + if (i === n - 1) { + U.push(String.fromCodePoint(0xFFFD)); + } else { + const d = S.charCodeAt(i + 1); + if (0xDC00 <= d && d <= 0xDFFF) { + const a = c & 0x3FF; + const b = d & 0x3FF; + U.push(String.fromCodePoint((2 << 15) + (2 << 9) * a + b)); + ++i; + } else { + U.push(String.fromCodePoint(0xFFFD)); + } + } + } + } + + return U.join(''); +}; + +conversions["Date"] = function (V, opts) { + if (!(V instanceof Date)) { + throw new TypeError("Argument is not a Date object"); + } + if (isNaN(V)) { + return undefined; + } + + return V; +}; + +conversions["RegExp"] = function (V, opts) { + if (!(V instanceof RegExp)) { + V = new RegExp(V); + } + + return V; +}; + + +/***/ }), + +/***/ 56308: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + +const usm = __nccwpck_require__(69883); + +exports.implementation = class URLImpl { + constructor(constructorArgs) { + const url = constructorArgs[0]; + const base = constructorArgs[1]; + + let parsedBase = null; + if (base !== undefined) { + parsedBase = usm.basicURLParse(base); + if (parsedBase === "failure") { + throw new TypeError("Invalid base URL"); + } + } + + const parsedURL = usm.basicURLParse(url, { baseURL: parsedBase }); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + + // TODO: query stuff + } + + get href() { + return usm.serializeURL(this._url); + } + + set href(v) { + const parsedURL = usm.basicURLParse(v); + if (parsedURL === "failure") { + throw new TypeError("Invalid URL"); + } + + this._url = parsedURL; + } + + get origin() { + return usm.serializeURLOrigin(this._url); + } + + get protocol() { + return this._url.scheme + ":"; + } + + set protocol(v) { + usm.basicURLParse(v + ":", { url: this._url, stateOverride: "scheme start" }); + } + + get username() { + return this._url.username; + } + + set username(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setTheUsername(this._url, v); + } + + get password() { + return this._url.password; + } + + set password(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + usm.setThePassword(this._url, v); + } + + get host() { + const url = this._url; + + if (url.host === null) { + return ""; + } + + if (url.port === null) { + return usm.serializeHost(url.host); + } + + return usm.serializeHost(url.host) + ":" + usm.serializeInteger(url.port); + } + + set host(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "host" }); + } + + get hostname() { + if (this._url.host === null) { + return ""; + } + + return usm.serializeHost(this._url.host); + } + + set hostname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + usm.basicURLParse(v, { url: this._url, stateOverride: "hostname" }); + } + + get port() { + if (this._url.port === null) { + return ""; + } + + return usm.serializeInteger(this._url.port); + } + + set port(v) { + if (usm.cannotHaveAUsernamePasswordPort(this._url)) { + return; + } + + if (v === "") { + this._url.port = null; + } else { + usm.basicURLParse(v, { url: this._url, stateOverride: "port" }); + } + } + + get pathname() { + if (this._url.cannotBeABaseURL) { + return this._url.path[0]; + } + + if (this._url.path.length === 0) { + return ""; + } + + return "/" + this._url.path.join("/"); + } + + set pathname(v) { + if (this._url.cannotBeABaseURL) { + return; + } + + this._url.path = []; + usm.basicURLParse(v, { url: this._url, stateOverride: "path start" }); + } + + get search() { + if (this._url.query === null || this._url.query === "") { + return ""; + } + + return "?" + this._url.query; + } + + set search(v) { + // TODO: query stuff + + const url = this._url; + + if (v === "") { + url.query = null; + return; + } + + const input = v[0] === "?" ? v.substring(1) : v; + url.query = ""; + usm.basicURLParse(input, { url, stateOverride: "query" }); + } + + get hash() { + if (this._url.fragment === null || this._url.fragment === "") { + return ""; + } + + return "#" + this._url.fragment; + } + + set hash(v) { + if (v === "") { + this._url.fragment = null; + return; + } + + const input = v[0] === "#" ? v.substring(1) : v; + this._url.fragment = ""; + usm.basicURLParse(input, { url: this._url, stateOverride: "fragment" }); + } + + toJSON() { + return this.href; + } +}; + + +/***/ }), + +/***/ 69339: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +const conversions = __nccwpck_require__(49974); +const utils = __nccwpck_require__(88071); +const Impl = __nccwpck_require__(56308); + +const impl = utils.implSymbol; + +function URL(url) { + if (!this || this[impl] || !(this instanceof URL)) { + throw new TypeError("Failed to construct 'URL': Please use the 'new' operator, this DOM object constructor cannot be called as a function."); + } + if (arguments.length < 1) { + throw new TypeError("Failed to construct 'URL': 1 argument required, but only " + arguments.length + " present."); + } + const args = []; + for (let i = 0; i < arguments.length && i < 2; ++i) { + args[i] = arguments[i]; + } + args[0] = conversions["USVString"](args[0]); + if (args[1] !== undefined) { + args[1] = conversions["USVString"](args[1]); + } + + module.exports.setup(this, args); +} + +URL.prototype.toJSON = function toJSON() { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + const args = []; + for (let i = 0; i < arguments.length && i < 0; ++i) { + args[i] = arguments[i]; + } + return this[impl].toJSON.apply(this[impl], args); +}; +Object.defineProperty(URL.prototype, "href", { + get() { + return this[impl].href; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].href = V; + }, + enumerable: true, + configurable: true +}); + +URL.prototype.toString = function () { + if (!this || !module.exports.is(this)) { + throw new TypeError("Illegal invocation"); + } + return this.href; +}; + +Object.defineProperty(URL.prototype, "origin", { + get() { + return this[impl].origin; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "protocol", { + get() { + return this[impl].protocol; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].protocol = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "username", { + get() { + return this[impl].username; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].username = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "password", { + get() { + return this[impl].password; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].password = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "host", { + get() { + return this[impl].host; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].host = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hostname", { + get() { + return this[impl].hostname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hostname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "port", { + get() { + return this[impl].port; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].port = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "pathname", { + get() { + return this[impl].pathname; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].pathname = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "search", { + get() { + return this[impl].search; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].search = V; + }, + enumerable: true, + configurable: true +}); + +Object.defineProperty(URL.prototype, "hash", { + get() { + return this[impl].hash; + }, + set(V) { + V = conversions["USVString"](V); + this[impl].hash = V; + }, + enumerable: true, + configurable: true +}); + + +module.exports = { + is(obj) { + return !!obj && obj[impl] instanceof Impl.implementation; + }, + create(constructorArgs, privateData) { + let obj = Object.create(URL.prototype); + this.setup(obj, constructorArgs, privateData); + return obj; + }, + setup(obj, constructorArgs, privateData) { + if (!privateData) privateData = {}; + privateData.wrapper = obj; + + obj[impl] = new Impl.implementation(constructorArgs, privateData); + obj[impl][utils.wrapperSymbol] = obj; + }, + interface: URL, + expose: { + Window: { URL: URL }, + Worker: { URL: URL } + } +}; + + + +/***/ }), + +/***/ 34802: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +"use strict"; + + +exports.URL = __nccwpck_require__(69339)["interface"]; +exports.serializeURL = __nccwpck_require__(69883).serializeURL; +exports.serializeURLOrigin = __nccwpck_require__(69883).serializeURLOrigin; +exports.basicURLParse = __nccwpck_require__(69883).basicURLParse; +exports.setTheUsername = __nccwpck_require__(69883).setTheUsername; +exports.setThePassword = __nccwpck_require__(69883).setThePassword; +exports.serializeHost = __nccwpck_require__(69883).serializeHost; +exports.serializeInteger = __nccwpck_require__(69883).serializeInteger; +exports.parseURL = __nccwpck_require__(69883).parseURL; + + +/***/ }), + +/***/ 69883: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + +const punycode = __nccwpck_require__(85477); +const tr46 = __nccwpck_require__(37601); + +const specialSchemes = { + ftp: 21, + file: null, + gopher: 70, + http: 80, + https: 443, + ws: 80, + wss: 443 +}; + +const failure = Symbol("failure"); + +function countSymbols(str) { + return punycode.ucs2.decode(str).length; +} + +function at(input, idx) { + const c = input[idx]; + return isNaN(c) ? undefined : String.fromCodePoint(c); +} + +function isASCIIDigit(c) { + return c >= 0x30 && c <= 0x39; +} + +function isASCIIAlpha(c) { + return (c >= 0x41 && c <= 0x5A) || (c >= 0x61 && c <= 0x7A); +} + +function isASCIIAlphanumeric(c) { + return isASCIIAlpha(c) || isASCIIDigit(c); +} + +function isASCIIHex(c) { + return isASCIIDigit(c) || (c >= 0x41 && c <= 0x46) || (c >= 0x61 && c <= 0x66); +} + +function isSingleDot(buffer) { + return buffer === "." || buffer.toLowerCase() === "%2e"; +} + +function isDoubleDot(buffer) { + buffer = buffer.toLowerCase(); + return buffer === ".." || buffer === "%2e." || buffer === ".%2e" || buffer === "%2e%2e"; +} + +function isWindowsDriveLetterCodePoints(cp1, cp2) { + return isASCIIAlpha(cp1) && (cp2 === 58 || cp2 === 124); +} + +function isWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && (string[1] === ":" || string[1] === "|"); +} + +function isNormalizedWindowsDriveLetterString(string) { + return string.length === 2 && isASCIIAlpha(string.codePointAt(0)) && string[1] === ":"; +} + +function containsForbiddenHostCodePoint(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|%|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function containsForbiddenHostCodePointExcludingPercent(string) { + return string.search(/\u0000|\u0009|\u000A|\u000D|\u0020|#|\/|:|\?|@|\[|\\|\]/) !== -1; +} + +function isSpecialScheme(scheme) { + return specialSchemes[scheme] !== undefined; +} + +function isSpecial(url) { + return isSpecialScheme(url.scheme); +} + +function defaultPort(scheme) { + return specialSchemes[scheme]; +} + +function percentEncode(c) { + let hex = c.toString(16).toUpperCase(); + if (hex.length === 1) { + hex = "0" + hex; + } + + return "%" + hex; +} + +function utf8PercentEncode(c) { + const buf = new Buffer(c); + + let str = ""; + + for (let i = 0; i < buf.length; ++i) { + str += percentEncode(buf[i]); + } + + return str; +} + +function utf8PercentDecode(str) { + const input = new Buffer(str); + const output = []; + for (let i = 0; i < input.length; ++i) { + if (input[i] !== 37) { + output.push(input[i]); + } else if (input[i] === 37 && isASCIIHex(input[i + 1]) && isASCIIHex(input[i + 2])) { + output.push(parseInt(input.slice(i + 1, i + 3).toString(), 16)); + i += 2; + } else { + output.push(input[i]); + } + } + return new Buffer(output).toString(); +} + +function isC0ControlPercentEncode(c) { + return c <= 0x1F || c > 0x7E; +} + +const extraPathPercentEncodeSet = new Set([32, 34, 35, 60, 62, 63, 96, 123, 125]); +function isPathPercentEncode(c) { + return isC0ControlPercentEncode(c) || extraPathPercentEncodeSet.has(c); +} + +const extraUserinfoPercentEncodeSet = + new Set([47, 58, 59, 61, 64, 91, 92, 93, 94, 124]); +function isUserinfoPercentEncode(c) { + return isPathPercentEncode(c) || extraUserinfoPercentEncodeSet.has(c); +} + +function percentEncodeChar(c, encodeSetPredicate) { + const cStr = String.fromCodePoint(c); + + if (encodeSetPredicate(c)) { + return utf8PercentEncode(cStr); + } + + return cStr; +} + +function parseIPv4Number(input) { + let R = 10; + + if (input.length >= 2 && input.charAt(0) === "0" && input.charAt(1).toLowerCase() === "x") { + input = input.substring(2); + R = 16; + } else if (input.length >= 2 && input.charAt(0) === "0") { + input = input.substring(1); + R = 8; + } + + if (input === "") { + return 0; + } + + const regex = R === 10 ? /[^0-9]/ : (R === 16 ? /[^0-9A-Fa-f]/ : /[^0-7]/); + if (regex.test(input)) { + return failure; + } + + return parseInt(input, R); +} + +function parseIPv4(input) { + const parts = input.split("."); + if (parts[parts.length - 1] === "") { + if (parts.length > 1) { + parts.pop(); + } + } + + if (parts.length > 4) { + return input; + } + + const numbers = []; + for (const part of parts) { + if (part === "") { + return input; + } + const n = parseIPv4Number(part); + if (n === failure) { + return input; + } + + numbers.push(n); + } + + for (let i = 0; i < numbers.length - 1; ++i) { + if (numbers[i] > 255) { + return failure; + } + } + if (numbers[numbers.length - 1] >= Math.pow(256, 5 - numbers.length)) { + return failure; + } + + let ipv4 = numbers.pop(); + let counter = 0; + + for (const n of numbers) { + ipv4 += n * Math.pow(256, 3 - counter); + ++counter; + } + + return ipv4; +} + +function serializeIPv4(address) { + let output = ""; + let n = address; + + for (let i = 1; i <= 4; ++i) { + output = String(n % 256) + output; + if (i !== 4) { + output = "." + output; + } + n = Math.floor(n / 256); + } + + return output; +} + +function parseIPv6(input) { + const address = [0, 0, 0, 0, 0, 0, 0, 0]; + let pieceIndex = 0; + let compress = null; + let pointer = 0; + + input = punycode.ucs2.decode(input); + + if (input[pointer] === 58) { + if (input[pointer + 1] !== 58) { + return failure; + } + + pointer += 2; + ++pieceIndex; + compress = pieceIndex; + } + + while (pointer < input.length) { + if (pieceIndex === 8) { + return failure; + } + + if (input[pointer] === 58) { + if (compress !== null) { + return failure; + } + ++pointer; + ++pieceIndex; + compress = pieceIndex; + continue; + } + + let value = 0; + let length = 0; + + while (length < 4 && isASCIIHex(input[pointer])) { + value = value * 0x10 + parseInt(at(input, pointer), 16); + ++pointer; + ++length; + } + + if (input[pointer] === 46) { + if (length === 0) { + return failure; + } + + pointer -= length; + + if (pieceIndex > 6) { + return failure; + } + + let numbersSeen = 0; + + while (input[pointer] !== undefined) { + let ipv4Piece = null; + + if (numbersSeen > 0) { + if (input[pointer] === 46 && numbersSeen < 4) { + ++pointer; + } else { + return failure; + } + } + + if (!isASCIIDigit(input[pointer])) { + return failure; + } + + while (isASCIIDigit(input[pointer])) { + const number = parseInt(at(input, pointer)); + if (ipv4Piece === null) { + ipv4Piece = number; + } else if (ipv4Piece === 0) { + return failure; + } else { + ipv4Piece = ipv4Piece * 10 + number; + } + if (ipv4Piece > 255) { + return failure; + } + ++pointer; + } + + address[pieceIndex] = address[pieceIndex] * 0x100 + ipv4Piece; + + ++numbersSeen; + + if (numbersSeen === 2 || numbersSeen === 4) { + ++pieceIndex; + } + } + + if (numbersSeen !== 4) { + return failure; + } + + break; + } else if (input[pointer] === 58) { + ++pointer; + if (input[pointer] === undefined) { + return failure; + } + } else if (input[pointer] !== undefined) { + return failure; + } + + address[pieceIndex] = value; + ++pieceIndex; + } + + if (compress !== null) { + let swaps = pieceIndex - compress; + pieceIndex = 7; + while (pieceIndex !== 0 && swaps > 0) { + const temp = address[compress + swaps - 1]; + address[compress + swaps - 1] = address[pieceIndex]; + address[pieceIndex] = temp; + --pieceIndex; + --swaps; + } + } else if (compress === null && pieceIndex !== 8) { + return failure; + } + + return address; +} + +function serializeIPv6(address) { + let output = ""; + const seqResult = findLongestZeroSequence(address); + const compress = seqResult.idx; + let ignore0 = false; + + for (let pieceIndex = 0; pieceIndex <= 7; ++pieceIndex) { + if (ignore0 && address[pieceIndex] === 0) { + continue; + } else if (ignore0) { + ignore0 = false; + } + + if (compress === pieceIndex) { + const separator = pieceIndex === 0 ? "::" : ":"; + output += separator; + ignore0 = true; + continue; + } + + output += address[pieceIndex].toString(16); + + if (pieceIndex !== 7) { + output += ":"; + } + } + + return output; +} + +function parseHost(input, isSpecialArg) { + if (input[0] === "[") { + if (input[input.length - 1] !== "]") { + return failure; + } + + return parseIPv6(input.substring(1, input.length - 1)); + } + + if (!isSpecialArg) { + return parseOpaqueHost(input); + } + + const domain = utf8PercentDecode(input); + const asciiDomain = tr46.toASCII(domain, false, tr46.PROCESSING_OPTIONS.NONTRANSITIONAL, false); + if (asciiDomain === null) { + return failure; + } + + if (containsForbiddenHostCodePoint(asciiDomain)) { + return failure; + } + + const ipv4Host = parseIPv4(asciiDomain); + if (typeof ipv4Host === "number" || ipv4Host === failure) { + return ipv4Host; + } + + return asciiDomain; +} + +function parseOpaqueHost(input) { + if (containsForbiddenHostCodePointExcludingPercent(input)) { + return failure; + } + + let output = ""; + const decoded = punycode.ucs2.decode(input); + for (let i = 0; i < decoded.length; ++i) { + output += percentEncodeChar(decoded[i], isC0ControlPercentEncode); + } + return output; +} + +function findLongestZeroSequence(arr) { + let maxIdx = null; + let maxLen = 1; // only find elements > 1 + let currStart = null; + let currLen = 0; + + for (let i = 0; i < arr.length; ++i) { + if (arr[i] !== 0) { + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + currStart = null; + currLen = 0; + } else { + if (currStart === null) { + currStart = i; + } + ++currLen; + } + } + + // if trailing zeros + if (currLen > maxLen) { + maxIdx = currStart; + maxLen = currLen; + } + + return { + idx: maxIdx, + len: maxLen + }; +} + +function serializeHost(host) { + if (typeof host === "number") { + return serializeIPv4(host); + } + + // IPv6 serializer + if (host instanceof Array) { + return "[" + serializeIPv6(host) + "]"; + } + + return host; +} + +function trimControlChars(url) { + return url.replace(/^[\u0000-\u001F\u0020]+|[\u0000-\u001F\u0020]+$/g, ""); +} + +function trimTabAndNewline(url) { + return url.replace(/\u0009|\u000A|\u000D/g, ""); +} + +function shortenPath(url) { + const path = url.path; + if (path.length === 0) { + return; + } + if (url.scheme === "file" && path.length === 1 && isNormalizedWindowsDriveLetter(path[0])) { + return; + } + + path.pop(); +} + +function includesCredentials(url) { + return url.username !== "" || url.password !== ""; +} + +function cannotHaveAUsernamePasswordPort(url) { + return url.host === null || url.host === "" || url.cannotBeABaseURL || url.scheme === "file"; +} + +function isNormalizedWindowsDriveLetter(string) { + return /^[A-Za-z]:$/.test(string); +} + +function URLStateMachine(input, base, encodingOverride, url, stateOverride) { + this.pointer = 0; + this.input = input; + this.base = base || null; + this.encodingOverride = encodingOverride || "utf-8"; + this.stateOverride = stateOverride; + this.url = url; + this.failure = false; + this.parseError = false; + + if (!this.url) { + this.url = { + scheme: "", + username: "", + password: "", + host: null, + port: null, + path: [], + query: null, + fragment: null, + + cannotBeABaseURL: false + }; + + const res = trimControlChars(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + } + + const res = trimTabAndNewline(this.input); + if (res !== this.input) { + this.parseError = true; + } + this.input = res; + + this.state = stateOverride || "scheme start"; + + this.buffer = ""; + this.atFlag = false; + this.arrFlag = false; + this.passwordTokenSeenFlag = false; + + this.input = punycode.ucs2.decode(this.input); + + for (; this.pointer <= this.input.length; ++this.pointer) { + const c = this.input[this.pointer]; + const cStr = isNaN(c) ? undefined : String.fromCodePoint(c); + + // exec state machine + const ret = this["parse " + this.state](c, cStr); + if (!ret) { + break; // terminate algorithm + } else if (ret === failure) { + this.failure = true; + break; + } + } +} + +URLStateMachine.prototype["parse scheme start"] = function parseSchemeStart(c, cStr) { + if (isASCIIAlpha(c)) { + this.buffer += cStr.toLowerCase(); + this.state = "scheme"; + } else if (!this.stateOverride) { + this.state = "no scheme"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse scheme"] = function parseScheme(c, cStr) { + if (isASCIIAlphanumeric(c) || c === 43 || c === 45 || c === 46) { + this.buffer += cStr.toLowerCase(); + } else if (c === 58) { + if (this.stateOverride) { + if (isSpecial(this.url) && !isSpecialScheme(this.buffer)) { + return false; + } + + if (!isSpecial(this.url) && isSpecialScheme(this.buffer)) { + return false; + } + + if ((includesCredentials(this.url) || this.url.port !== null) && this.buffer === "file") { + return false; + } + + if (this.url.scheme === "file" && (this.url.host === "" || this.url.host === null)) { + return false; + } + } + this.url.scheme = this.buffer; + this.buffer = ""; + if (this.stateOverride) { + return false; + } + if (this.url.scheme === "file") { + if (this.input[this.pointer + 1] !== 47 || this.input[this.pointer + 2] !== 47) { + this.parseError = true; + } + this.state = "file"; + } else if (isSpecial(this.url) && this.base !== null && this.base.scheme === this.url.scheme) { + this.state = "special relative or authority"; + } else if (isSpecial(this.url)) { + this.state = "special authority slashes"; + } else if (this.input[this.pointer + 1] === 47) { + this.state = "path or authority"; + ++this.pointer; + } else { + this.url.cannotBeABaseURL = true; + this.url.path.push(""); + this.state = "cannot-be-a-base-URL path"; + } + } else if (!this.stateOverride) { + this.buffer = ""; + this.state = "no scheme"; + this.pointer = -1; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +URLStateMachine.prototype["parse no scheme"] = function parseNoScheme(c) { + if (this.base === null || (this.base.cannotBeABaseURL && c !== 35)) { + return failure; + } else if (this.base.cannotBeABaseURL && c === 35) { + this.url.scheme = this.base.scheme; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.url.cannotBeABaseURL = true; + this.state = "fragment"; + } else if (this.base.scheme === "file") { + this.state = "file"; + --this.pointer; + } else { + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special relative or authority"] = function parseSpecialRelativeOrAuthority(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "relative"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse path or authority"] = function parsePathOrAuthority(c) { + if (c === 47) { + this.state = "authority"; + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative"] = function parseRelative(c) { + this.url.scheme = this.base.scheme; + if (isNaN(c)) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 47) { + this.state = "relative slash"; + } else if (c === 63) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else if (isSpecial(this.url) && c === 92) { + this.parseError = true; + this.state = "relative slash"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.url.path = this.base.path.slice(0, this.base.path.length - 1); + + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse relative slash"] = function parseRelativeSlash(c) { + if (isSpecial(this.url) && (c === 47 || c === 92)) { + if (c === 92) { + this.parseError = true; + } + this.state = "special authority ignore slashes"; + } else if (c === 47) { + this.state = "authority"; + } else { + this.url.username = this.base.username; + this.url.password = this.base.password; + this.url.host = this.base.host; + this.url.port = this.base.port; + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority slashes"] = function parseSpecialAuthoritySlashes(c) { + if (c === 47 && this.input[this.pointer + 1] === 47) { + this.state = "special authority ignore slashes"; + ++this.pointer; + } else { + this.parseError = true; + this.state = "special authority ignore slashes"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse special authority ignore slashes"] = function parseSpecialAuthorityIgnoreSlashes(c) { + if (c !== 47 && c !== 92) { + this.state = "authority"; + --this.pointer; + } else { + this.parseError = true; + } + + return true; +}; + +URLStateMachine.prototype["parse authority"] = function parseAuthority(c, cStr) { + if (c === 64) { + this.parseError = true; + if (this.atFlag) { + this.buffer = "%40" + this.buffer; + } + this.atFlag = true; + + // careful, this is based on buffer and has its own pointer (this.pointer != pointer) and inner chars + const len = countSymbols(this.buffer); + for (let pointer = 0; pointer < len; ++pointer) { + const codePoint = this.buffer.codePointAt(pointer); + + if (codePoint === 58 && !this.passwordTokenSeenFlag) { + this.passwordTokenSeenFlag = true; + continue; + } + const encodedCodePoints = percentEncodeChar(codePoint, isUserinfoPercentEncode); + if (this.passwordTokenSeenFlag) { + this.url.password += encodedCodePoints; + } else { + this.url.username += encodedCodePoints; + } + } + this.buffer = ""; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + if (this.atFlag && this.buffer === "") { + this.parseError = true; + return failure; + } + this.pointer -= countSymbols(this.buffer) + 1; + this.buffer = ""; + this.state = "host"; + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse hostname"] = +URLStateMachine.prototype["parse host"] = function parseHostName(c, cStr) { + if (this.stateOverride && this.url.scheme === "file") { + --this.pointer; + this.state = "file host"; + } else if (c === 58 && !this.arrFlag) { + if (this.buffer === "") { + this.parseError = true; + return failure; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "port"; + if (this.stateOverride === "hostname") { + return false; + } + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92)) { + --this.pointer; + if (isSpecial(this.url) && this.buffer === "") { + this.parseError = true; + return failure; + } else if (this.stateOverride && this.buffer === "" && + (includesCredentials(this.url) || this.url.port !== null)) { + this.parseError = true; + return false; + } + + const host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + + this.url.host = host; + this.buffer = ""; + this.state = "path start"; + if (this.stateOverride) { + return false; + } + } else { + if (c === 91) { + this.arrFlag = true; + } else if (c === 93) { + this.arrFlag = false; + } + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse port"] = function parsePort(c, cStr) { + if (isASCIIDigit(c)) { + this.buffer += cStr; + } else if (isNaN(c) || c === 47 || c === 63 || c === 35 || + (isSpecial(this.url) && c === 92) || + this.stateOverride) { + if (this.buffer !== "") { + const port = parseInt(this.buffer); + if (port > Math.pow(2, 16) - 1) { + this.parseError = true; + return failure; + } + this.url.port = port === defaultPort(this.url.scheme) ? null : port; + this.buffer = ""; + } + if (this.stateOverride) { + return false; + } + this.state = "path start"; + --this.pointer; + } else { + this.parseError = true; + return failure; + } + + return true; +}; + +const fileOtherwiseCodePoints = new Set([47, 92, 63, 35]); + +URLStateMachine.prototype["parse file"] = function parseFile(c) { + this.url.scheme = "file"; + + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file slash"; + } else if (this.base !== null && this.base.scheme === "file") { + if (isNaN(c)) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + } else if (c === 63) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + this.url.query = this.base.query; + this.url.fragment = ""; + this.state = "fragment"; + } else { + if (this.input.length - this.pointer - 1 === 0 || // remaining consists of 0 code points + !isWindowsDriveLetterCodePoints(c, this.input[this.pointer + 1]) || + (this.input.length - this.pointer - 1 >= 2 && // remaining has at least 2 code points + !fileOtherwiseCodePoints.has(this.input[this.pointer + 2]))) { + this.url.host = this.base.host; + this.url.path = this.base.path.slice(); + shortenPath(this.url); + } else { + this.parseError = true; + } + + this.state = "path"; + --this.pointer; + } + } else { + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file slash"] = function parseFileSlash(c) { + if (c === 47 || c === 92) { + if (c === 92) { + this.parseError = true; + } + this.state = "file host"; + } else { + if (this.base !== null && this.base.scheme === "file") { + if (isNormalizedWindowsDriveLetterString(this.base.path[0])) { + this.url.path.push(this.base.path[0]); + } else { + this.url.host = this.base.host; + } + } + this.state = "path"; + --this.pointer; + } + + return true; +}; + +URLStateMachine.prototype["parse file host"] = function parseFileHost(c, cStr) { + if (isNaN(c) || c === 47 || c === 92 || c === 63 || c === 35) { + --this.pointer; + if (!this.stateOverride && isWindowsDriveLetterString(this.buffer)) { + this.parseError = true; + this.state = "path"; + } else if (this.buffer === "") { + this.url.host = ""; + if (this.stateOverride) { + return false; + } + this.state = "path start"; + } else { + let host = parseHost(this.buffer, isSpecial(this.url)); + if (host === failure) { + return failure; + } + if (host === "localhost") { + host = ""; + } + this.url.host = host; + + if (this.stateOverride) { + return false; + } + + this.buffer = ""; + this.state = "path start"; + } + } else { + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse path start"] = function parsePathStart(c) { + if (isSpecial(this.url)) { + if (c === 92) { + this.parseError = true; + } + this.state = "path"; + + if (c !== 47 && c !== 92) { + --this.pointer; + } + } else if (!this.stateOverride && c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (!this.stateOverride && c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else if (c !== undefined) { + this.state = "path"; + if (c !== 47) { + --this.pointer; + } + } + + return true; +}; + +URLStateMachine.prototype["parse path"] = function parsePath(c) { + if (isNaN(c) || c === 47 || (isSpecial(this.url) && c === 92) || + (!this.stateOverride && (c === 63 || c === 35))) { + if (isSpecial(this.url) && c === 92) { + this.parseError = true; + } + + if (isDoubleDot(this.buffer)) { + shortenPath(this.url); + if (c !== 47 && !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } + } else if (isSingleDot(this.buffer) && c !== 47 && + !(isSpecial(this.url) && c === 92)) { + this.url.path.push(""); + } else if (!isSingleDot(this.buffer)) { + if (this.url.scheme === "file" && this.url.path.length === 0 && isWindowsDriveLetterString(this.buffer)) { + if (this.url.host !== "" && this.url.host !== null) { + this.parseError = true; + this.url.host = ""; + } + this.buffer = this.buffer[0] + ":"; + } + this.url.path.push(this.buffer); + } + this.buffer = ""; + if (this.url.scheme === "file" && (c === undefined || c === 63 || c === 35)) { + while (this.url.path.length > 1 && this.url.path[0] === "") { + this.parseError = true; + this.url.path.shift(); + } + } + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += percentEncodeChar(c, isPathPercentEncode); + } + + return true; +}; + +URLStateMachine.prototype["parse cannot-be-a-base-URL path"] = function parseCannotBeABaseURLPath(c) { + if (c === 63) { + this.url.query = ""; + this.state = "query"; + } else if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } else { + // TODO: Add: not a URL code point + if (!isNaN(c) && c !== 37) { + this.parseError = true; + } + + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + if (!isNaN(c)) { + this.url.path[0] = this.url.path[0] + percentEncodeChar(c, isC0ControlPercentEncode); + } + } + + return true; +}; + +URLStateMachine.prototype["parse query"] = function parseQuery(c, cStr) { + if (isNaN(c) || (!this.stateOverride && c === 35)) { + if (!isSpecial(this.url) || this.url.scheme === "ws" || this.url.scheme === "wss") { + this.encodingOverride = "utf-8"; + } + + const buffer = new Buffer(this.buffer); // TODO: Use encoding override instead + for (let i = 0; i < buffer.length; ++i) { + if (buffer[i] < 0x21 || buffer[i] > 0x7E || buffer[i] === 0x22 || buffer[i] === 0x23 || + buffer[i] === 0x3C || buffer[i] === 0x3E) { + this.url.query += percentEncode(buffer[i]); + } else { + this.url.query += String.fromCodePoint(buffer[i]); + } + } + + this.buffer = ""; + if (c === 35) { + this.url.fragment = ""; + this.state = "fragment"; + } + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.buffer += cStr; + } + + return true; +}; + +URLStateMachine.prototype["parse fragment"] = function parseFragment(c) { + if (isNaN(c)) { // do nothing + } else if (c === 0x0) { + this.parseError = true; + } else { + // TODO: If c is not a URL code point and not "%", parse error. + if (c === 37 && + (!isASCIIHex(this.input[this.pointer + 1]) || + !isASCIIHex(this.input[this.pointer + 2]))) { + this.parseError = true; + } + + this.url.fragment += percentEncodeChar(c, isC0ControlPercentEncode); + } + + return true; +}; + +function serializeURL(url, excludeFragment) { + let output = url.scheme + ":"; + if (url.host !== null) { + output += "//"; + + if (url.username !== "" || url.password !== "") { + output += url.username; + if (url.password !== "") { + output += ":" + url.password; + } + output += "@"; + } + + output += serializeHost(url.host); + + if (url.port !== null) { + output += ":" + url.port; + } + } else if (url.host === null && url.scheme === "file") { + output += "//"; + } + + if (url.cannotBeABaseURL) { + output += url.path[0]; + } else { + for (const string of url.path) { + output += "/" + string; + } + } + + if (url.query !== null) { + output += "?" + url.query; + } + + if (!excludeFragment && url.fragment !== null) { + output += "#" + url.fragment; + } + + return output; +} + +function serializeOrigin(tuple) { + let result = tuple.scheme + "://"; + result += serializeHost(tuple.host); + + if (tuple.port !== null) { + result += ":" + tuple.port; + } + + return result; +} + +module.exports.serializeURL = serializeURL; + +module.exports.serializeURLOrigin = function (url) { + // https://url.spec.whatwg.org/#concept-url-origin + switch (url.scheme) { + case "blob": + try { + return module.exports.serializeURLOrigin(module.exports.parseURL(url.path[0])); + } catch (e) { + // serializing an opaque origin returns "null" + return "null"; + } + case "ftp": + case "gopher": + case "http": + case "https": + case "ws": + case "wss": + return serializeOrigin({ + scheme: url.scheme, + host: url.host, + port: url.port + }); + case "file": + // spec says "exercise to the reader", chrome says "file://" + return "file://"; + default: + // serializing an opaque origin returns "null" + return "null"; + } +}; + +module.exports.basicURLParse = function (input, options) { + if (options === undefined) { + options = {}; + } + + const usm = new URLStateMachine(input, options.baseURL, options.encodingOverride, options.url, options.stateOverride); + if (usm.failure) { + return "failure"; + } + + return usm.url; +}; + +module.exports.setTheUsername = function (url, username) { + url.username = ""; + const decoded = punycode.ucs2.decode(username); + for (let i = 0; i < decoded.length; ++i) { + url.username += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.setThePassword = function (url, password) { + url.password = ""; + const decoded = punycode.ucs2.decode(password); + for (let i = 0; i < decoded.length; ++i) { + url.password += percentEncodeChar(decoded[i], isUserinfoPercentEncode); + } +}; + +module.exports.serializeHost = serializeHost; + +module.exports.cannotHaveAUsernamePasswordPort = cannotHaveAUsernamePasswordPort; + +module.exports.serializeInteger = function (integer) { + return String(integer); +}; + +module.exports.parseURL = function (input, options) { + if (options === undefined) { + options = {}; + } + + // We don't handle blobs, so this just delegates: + return module.exports.basicURLParse(input, { baseURL: options.baseURL, encodingOverride: options.encodingOverride }); +}; + + +/***/ }), + +/***/ 88071: +/***/ ((module) => { + +"use strict"; + + +module.exports.mixin = function mixin(target, source) { + const keys = Object.getOwnPropertyNames(source); + for (let i = 0; i < keys.length; ++i) { + Object.defineProperty(target, keys[i], Object.getOwnPropertyDescriptor(source, keys[i])); + } +}; + +module.exports.wrapperSymbol = Symbol("wrapper"); +module.exports.implSymbol = Symbol("impl"); + +module.exports.wrapperForImpl = function (impl) { + return impl[module.exports.wrapperSymbol]; +}; + +module.exports.implForWrapper = function (wrapper) { + return wrapper[module.exports.implSymbol]; +}; + + + +/***/ }), + +/***/ 67712: +/***/ ((module) => { + +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') + + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] + } + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) + } + return ret + } +} + + +/***/ }), + +/***/ 99425: +/***/ ((module) => { + +"use strict"; + +module.exports = function (Yallist) { + Yallist.prototype[Symbol.iterator] = function* () { + for (let walker = this.head; walker; walker = walker.next) { + yield walker.value + } + } +} + + +/***/ }), + +/***/ 29914: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + +module.exports = Yallist + +Yallist.Node = Node +Yallist.create = Yallist + +function Yallist (list) { + var self = this + if (!(self instanceof Yallist)) { + self = new Yallist() + } + + self.tail = null + self.head = null + self.length = 0 + + 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]) + } + } + + return self +} + +Yallist.prototype.removeNode = function (node) { + if (node.list !== this) { + throw new Error('removing node which does not belong to this list') + } + + var next = node.next + var prev = node.prev + + if (next) { + next.prev = prev + } + + if (prev) { + prev.next = next + } + + if (node === this.head) { + this.head = next + } + if (node === this.tail) { + this.tail = prev + } + + node.list.length-- + node.next = null + node.prev = null + node.list = null + + return next +} + +Yallist.prototype.unshiftNode = function (node) { + if (node === this.head) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var head = this.head + node.list = this + node.next = head + if (head) { + head.prev = node + } + + this.head = node + if (!this.tail) { + this.tail = node + } + this.length++ +} + +Yallist.prototype.pushNode = function (node) { + if (node === this.tail) { + return + } + + if (node.list) { + node.list.removeNode(node) + } + + var tail = this.tail + node.list = this + node.prev = tail + if (tail) { + tail.next = node + } + + this.tail = node + if (!this.head) { + this.head = node + } + this.length++ +} + +Yallist.prototype.push = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + push(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.unshift = function () { + for (var i = 0, l = arguments.length; i < l; i++) { + unshift(this, arguments[i]) + } + return this.length +} + +Yallist.prototype.pop = function () { + if (!this.tail) { + return undefined + } + + var res = this.tail.value + this.tail = this.tail.prev + if (this.tail) { + this.tail.next = null + } else { + this.head = null + } + this.length-- + return res +} + +Yallist.prototype.shift = function () { + if (!this.head) { + return undefined + } + + var res = this.head.value + this.head = this.head.next + if (this.head) { + this.head.prev = null + } else { + this.tail = null + } + this.length-- + return res +} + +Yallist.prototype.forEach = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.head, i = 0; walker !== null; i++) { + fn.call(thisp, walker.value, i, this) + walker = walker.next + } +} + +Yallist.prototype.forEachReverse = function (fn, thisp) { + thisp = thisp || this + for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { + fn.call(thisp, walker.value, i, this) + walker = walker.prev + } +} + +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 + } + if (i === n && walker !== null) { + return walker.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 (i === n && walker !== null) { + return walker.value + } +} + +Yallist.prototype.map = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.head; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.next + } + return res +} + +Yallist.prototype.mapReverse = function (fn, thisp) { + thisp = thisp || this + var res = new Yallist() + for (var walker = this.tail; walker !== null;) { + res.push(fn.call(thisp, walker.value, this)) + walker = walker.prev + } + return res +} + +Yallist.prototype.reduce = function (fn, initial) { + var acc + var walker = this.head + 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') + } + + for (var i = 0; walker !== null; i++) { + acc = fn(acc, walker.value, i) + walker = walker.next + } + + return acc +} + +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') + } + + for (var i = this.length - 1; walker !== null; i--) { + acc = fn(acc, walker.value, i) + walker = walker.prev + } + + return acc +} + +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 + } + return arr +} + +Yallist.prototype.toArrayReverse = function () { + var arr = new Array(this.length) + for (var i = 0, walker = this.tail; walker !== null; i++) { + arr[i] = walker.value + walker = walker.prev + } + return arr +} + +Yallist.prototype.slice = 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 + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + for (var i = 0, walker = this.head; walker !== null && i < from; i++) { + walker = walker.next + } + for (; walker !== null && i < to; i++, walker = walker.next) { + ret.push(walker.value) + } + return ret +} + +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 + } + if (from < 0) { + from = 0 + } + if (to > this.length) { + to = this.length + } + 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) + } + return ret +} + +Yallist.prototype.splice = function (start, deleteCount, ...nodes) { + if (start > this.length) { + start = this.length - 1 + } + if (start < 0) { + start = this.length + start; + } + + for (var i = 0, walker = this.head; walker !== null && i < start; i++) { + walker = walker.next + } + + var ret = [] + for (var i = 0; walker && i < deleteCount; i++) { + ret.push(walker.value) + walker = this.removeNode(walker) + } + if (walker === null) { + walker = this.tail + } + + if (walker !== this.head && walker !== this.tail) { + walker = walker.prev + } + + for (var i = 0; i < nodes.length; i++) { + walker = insert(this, walker, nodes[i]) + } + return ret; +} + +Yallist.prototype.reverse = function () { + var head = this.head + var tail = this.tail + for (var walker = head; walker !== null; walker = walker.prev) { + var p = walker.prev + walker.prev = walker.next + walker.next = p + } + this.head = tail + this.tail = head + return this +} + +function insert (self, node, value) { + var inserted = node === self.head ? + new Node(value, null, node, self) : + new Node(value, node, node.next, self) + + if (inserted.next === null) { + self.tail = inserted + } + if (inserted.prev === null) { + self.head = inserted + } + + self.length++ + + return inserted +} + +function push (self, item) { + self.tail = new Node(item, self.tail, null, self) + if (!self.head) { + self.head = self.tail + } + self.length++ +} + +function unshift (self, item) { + self.head = new Node(item, null, self.head, self) + if (!self.tail) { + self.tail = self.head + } + self.length++ +} + +function Node (value, prev, next, list) { + if (!(this instanceof Node)) { + return new Node(value, prev, next, list) + } + + this.list = list + this.value = value + + if (prev) { + prev.next = this + this.prev = prev + } else { + this.prev = null + } + + if (next) { + next.prev = this + this.next = next + } else { + this.next = null + } +} + +try { + // add if support for Symbol.iterator is present + __nccwpck_require__(99425)(Yallist) +} catch (er) {} + + +/***/ }), + +/***/ 28076: +/***/ ((module) => { + +module.exports = eval("require")("encoding"); + + +/***/ }), + +/***/ 19377: +/***/ ((module) => { + +module.exports = eval("require")("supports-color"); + + +/***/ }), + +/***/ 39491: +/***/ ((module) => { + +"use strict"; +module.exports = require("assert"); + +/***/ }), + +/***/ 6113: +/***/ ((module) => { + +"use strict"; +module.exports = require("crypto"); + +/***/ }), + +/***/ 82361: +/***/ ((module) => { + +"use strict"; +module.exports = require("events"); + +/***/ }), + +/***/ 57147: +/***/ ((module) => { + +"use strict"; +module.exports = require("fs"); + +/***/ }), + +/***/ 13685: +/***/ ((module) => { + +"use strict"; +module.exports = require("http"); + +/***/ }), + +/***/ 95687: +/***/ ((module) => { + +"use strict"; +module.exports = require("https"); + +/***/ }), + +/***/ 41808: +/***/ ((module) => { + +"use strict"; +module.exports = require("net"); + +/***/ }), + +/***/ 22037: +/***/ ((module) => { + +"use strict"; +module.exports = require("os"); + +/***/ }), + +/***/ 71017: +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ 85477: +/***/ ((module) => { + +"use strict"; +module.exports = require("punycode"); + +/***/ }), + +/***/ 12781: +/***/ ((module) => { + +"use strict"; +module.exports = require("stream"); + +/***/ }), + +/***/ 71576: +/***/ ((module) => { + +"use strict"; +module.exports = require("string_decoder"); + +/***/ }), + +/***/ 24404: +/***/ ((module) => { + +"use strict"; +module.exports = require("tls"); + +/***/ }), + +/***/ 76224: +/***/ ((module) => { + +"use strict"; +module.exports = require("tty"); + +/***/ }), + +/***/ 57310: +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }), + +/***/ 73837: +/***/ ((module) => { + +"use strict"; +module.exports = require("util"); + +/***/ }), + +/***/ 59796: +/***/ ((module) => { + +"use strict"; +module.exports = require("zlib"); + +/***/ }), + +/***/ 73565: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +// Axios v1.3.4 Copyright (c) 2023 Matt Zabriskie and contributors + + +const FormData$1 = __nccwpck_require__(41851); +const url = __nccwpck_require__(57310); +const proxyFromEnv = __nccwpck_require__(35810); +const http = __nccwpck_require__(13685); +const https = __nccwpck_require__(95687); +const util = __nccwpck_require__(73837); +const followRedirects = __nccwpck_require__(85041); +const zlib = __nccwpck_require__(59796); +const stream = __nccwpck_require__(12781); +const EventEmitter = __nccwpck_require__(82361); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +const FormData__default = /*#__PURE__*/_interopDefaultLegacy(FormData$1); +const url__default = /*#__PURE__*/_interopDefaultLegacy(url); +const http__default = /*#__PURE__*/_interopDefaultLegacy(http); +const https__default = /*#__PURE__*/_interopDefaultLegacy(https); +const util__default = /*#__PURE__*/_interopDefaultLegacy(util); +const followRedirects__default = /*#__PURE__*/_interopDefaultLegacy(followRedirects); +const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); +const stream__default = /*#__PURE__*/_interopDefaultLegacy(stream); +const EventEmitter__default = /*#__PURE__*/_interopDefaultLegacy(EventEmitter); + +function bind(fn, thisArg) { + return function wrap() { + return fn.apply(thisArg, arguments); + }; +} + +// utils is a library of generic helper functions non-specific to axios + +const {toString} = Object.prototype; +const {getPrototypeOf} = Object; + +const kindOf = (cache => thing => { + const str = toString.call(thing); + return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase()); +})(Object.create(null)); + +const kindOfTest = (type) => { + type = type.toLowerCase(); + return (thing) => kindOf(thing) === type +}; + +const typeOfTest = type => thing => typeof thing === type; + +/** + * Determine if a value is an Array + * + * @param {Object} val The value to test + * + * @returns {boolean} True if value is an Array, otherwise false + */ +const {isArray} = Array; + +/** + * Determine if a value is undefined + * + * @param {*} val The value to test + * + * @returns {boolean} True if the value is undefined, otherwise false + */ +const isUndefined = typeOfTest('undefined'); + +/** + * Determine if a value is a Buffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Buffer, otherwise false + */ +function isBuffer(val) { + return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) + && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val); +} + +/** + * Determine if a value is an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is an ArrayBuffer, otherwise false + */ +const isArrayBuffer = kindOfTest('ArrayBuffer'); + + +/** + * Determine if a value is a view on an ArrayBuffer + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false + */ +function isArrayBufferView(val) { + let result; + if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) { + result = ArrayBuffer.isView(val); + } else { + result = (val) && (val.buffer) && (isArrayBuffer(val.buffer)); + } + return result; +} + +/** + * Determine if a value is a String + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a String, otherwise false + */ +const isString = typeOfTest('string'); + +/** + * Determine if a value is a Function + * + * @param {*} val The value to test + * @returns {boolean} True if value is a Function, otherwise false + */ +const isFunction = typeOfTest('function'); + +/** + * Determine if a value is a Number + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Number, otherwise false + */ +const isNumber = typeOfTest('number'); + +/** + * Determine if a value is an Object + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an Object, otherwise false + */ +const isObject = (thing) => thing !== null && typeof thing === 'object'; + +/** + * Determine if a value is a Boolean + * + * @param {*} thing The value to test + * @returns {boolean} True if value is a Boolean, otherwise false + */ +const isBoolean = thing => thing === true || thing === false; + +/** + * Determine if a value is a plain Object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a plain Object, otherwise false + */ +const isPlainObject = (val) => { + if (kindOf(val) !== 'object') { + return false; + } + + const prototype = getPrototypeOf(val); + return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val); +}; + +/** + * Determine if a value is a Date + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Date, otherwise false + */ +const isDate = kindOfTest('Date'); + +/** + * Determine if a value is a File + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFile = kindOfTest('File'); + +/** + * Determine if a value is a Blob + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Blob, otherwise false + */ +const isBlob = kindOfTest('Blob'); + +/** + * Determine if a value is a FileList + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a File, otherwise false + */ +const isFileList = kindOfTest('FileList'); + +/** + * Determine if a value is a Stream + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a Stream, otherwise false + */ +const isStream = (val) => isObject(val) && isFunction(val.pipe); + +/** + * Determine if a value is a FormData + * + * @param {*} thing The value to test + * + * @returns {boolean} True if value is an FormData, otherwise false + */ +const isFormData = (thing) => { + const pattern = '[object FormData]'; + return thing && ( + (typeof FormData === 'function' && thing instanceof FormData) || + toString.call(thing) === pattern || + (isFunction(thing.toString) && thing.toString() === pattern) + ); +}; + +/** + * Determine if a value is a URLSearchParams object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a URLSearchParams object, otherwise false + */ +const isURLSearchParams = kindOfTest('URLSearchParams'); + +/** + * Trim excess whitespace off the beginning and end of a string + * + * @param {String} str The String to trim + * + * @returns {String} The String freed of excess whitespace + */ +const trim = (str) => str.trim ? + str.trim() : str.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, ''); + +/** + * Iterate over an Array or an Object invoking a function for each item. + * + * If `obj` is an Array callback will be called passing + * the value, index, and complete array for each item. + * + * If 'obj' is an Object callback will be called passing + * the value, key, and complete object for each property. + * + * @param {Object|Array} obj The object to iterate + * @param {Function} fn The callback to invoke for each item + * + * @param {Boolean} [allOwnKeys = false] + * @returns {any} + */ +function forEach(obj, fn, {allOwnKeys = false} = {}) { + // Don't bother if no value provided + if (obj === null || typeof obj === 'undefined') { + return; + } + + let i; + let l; + + // Force an array if not already something iterable + if (typeof obj !== 'object') { + /*eslint no-param-reassign:0*/ + obj = [obj]; + } + + if (isArray(obj)) { + // Iterate over array values + for (i = 0, l = obj.length; i < l; i++) { + fn.call(null, obj[i], i, obj); + } + } else { + // Iterate over object keys + const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj); + const len = keys.length; + let key; + + for (i = 0; i < len; i++) { + key = keys[i]; + fn.call(null, obj[key], key, obj); + } + } +} + +function findKey(obj, key) { + key = key.toLowerCase(); + const keys = Object.keys(obj); + let i = keys.length; + let _key; + while (i-- > 0) { + _key = keys[i]; + if (key === _key.toLowerCase()) { + return _key; + } + } + return null; +} + +const _global = (() => { + /*eslint no-undef:0*/ + if (typeof globalThis !== "undefined") return globalThis; + return typeof self !== "undefined" ? self : (typeof window !== 'undefined' ? window : global) +})(); + +const isContextDefined = (context) => !isUndefined(context) && context !== _global; + +/** + * Accepts varargs expecting each argument to be an object, then + * immutably merges the properties of each object and returns result. + * + * When multiple objects contain the same key the later object in + * the arguments list will take precedence. + * + * Example: + * + * ```js + * var result = merge({foo: 123}, {foo: 456}); + * console.log(result.foo); // outputs 456 + * ``` + * + * @param {Object} obj1 Object to merge + * + * @returns {Object} Result of all merge properties + */ +function merge(/* obj1, obj2, obj3, ... */) { + const {caseless} = isContextDefined(this) && this || {}; + const result = {}; + const assignValue = (val, key) => { + const targetKey = caseless && findKey(result, key) || key; + if (isPlainObject(result[targetKey]) && isPlainObject(val)) { + result[targetKey] = merge(result[targetKey], val); + } else if (isPlainObject(val)) { + result[targetKey] = merge({}, val); + } else if (isArray(val)) { + result[targetKey] = val.slice(); + } else { + result[targetKey] = val; + } + }; + + for (let i = 0, l = arguments.length; i < l; i++) { + arguments[i] && forEach(arguments[i], assignValue); + } + return result; +} + +/** + * Extends object a by mutably adding to it the properties of object b. + * + * @param {Object} a The object to be extended + * @param {Object} b The object to copy properties from + * @param {Object} thisArg The object to bind function to + * + * @param {Boolean} [allOwnKeys] + * @returns {Object} The resulting value of object a + */ +const extend = (a, b, thisArg, {allOwnKeys}= {}) => { + forEach(b, (val, key) => { + if (thisArg && isFunction(val)) { + a[key] = bind(val, thisArg); + } else { + a[key] = val; + } + }, {allOwnKeys}); + return a; +}; + +/** + * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM) + * + * @param {string} content with BOM + * + * @returns {string} content value without BOM + */ +const stripBOM = (content) => { + if (content.charCodeAt(0) === 0xFEFF) { + content = content.slice(1); + } + return content; +}; + +/** + * Inherit the prototype methods from one constructor into another + * @param {function} constructor + * @param {function} superConstructor + * @param {object} [props] + * @param {object} [descriptors] + * + * @returns {void} + */ +const inherits = (constructor, superConstructor, props, descriptors) => { + constructor.prototype = Object.create(superConstructor.prototype, descriptors); + constructor.prototype.constructor = constructor; + Object.defineProperty(constructor, 'super', { + value: superConstructor.prototype + }); + props && Object.assign(constructor.prototype, props); +}; + +/** + * Resolve object with deep prototype chain to a flat object + * @param {Object} sourceObj source object + * @param {Object} [destObj] + * @param {Function|Boolean} [filter] + * @param {Function} [propFilter] + * + * @returns {Object} + */ +const toFlatObject = (sourceObj, destObj, filter, propFilter) => { + let props; + let i; + let prop; + const merged = {}; + + destObj = destObj || {}; + // eslint-disable-next-line no-eq-null,eqeqeq + if (sourceObj == null) return destObj; + + do { + props = Object.getOwnPropertyNames(sourceObj); + i = props.length; + while (i-- > 0) { + prop = props[i]; + if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) { + destObj[prop] = sourceObj[prop]; + merged[prop] = true; + } + } + sourceObj = filter !== false && getPrototypeOf(sourceObj); + } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype); + + return destObj; +}; + +/** + * Determines whether a string ends with the characters of a specified string + * + * @param {String} str + * @param {String} searchString + * @param {Number} [position= 0] + * + * @returns {boolean} + */ +const endsWith = (str, searchString, position) => { + str = String(str); + if (position === undefined || position > str.length) { + position = str.length; + } + position -= searchString.length; + const lastIndex = str.indexOf(searchString, position); + return lastIndex !== -1 && lastIndex === position; +}; + + +/** + * Returns new array from array like object or null if failed + * + * @param {*} [thing] + * + * @returns {?Array} + */ +const toArray = (thing) => { + if (!thing) return null; + if (isArray(thing)) return thing; + let i = thing.length; + if (!isNumber(i)) return null; + const arr = new Array(i); + while (i-- > 0) { + arr[i] = thing[i]; + } + return arr; +}; + +/** + * Checking if the Uint8Array exists and if it does, it returns a function that checks if the + * thing passed in is an instance of Uint8Array + * + * @param {TypedArray} + * + * @returns {Array} + */ +// eslint-disable-next-line func-names +const isTypedArray = (TypedArray => { + // eslint-disable-next-line func-names + return thing => { + return TypedArray && thing instanceof TypedArray; + }; +})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array)); + +/** + * For each entry in the object, call the function with the key and value. + * + * @param {Object} obj - The object to iterate over. + * @param {Function} fn - The function to call for each entry. + * + * @returns {void} + */ +const forEachEntry = (obj, fn) => { + const generator = obj && obj[Symbol.iterator]; + + const iterator = generator.call(obj); + + let result; + + while ((result = iterator.next()) && !result.done) { + const pair = result.value; + fn.call(obj, pair[0], pair[1]); + } +}; + +/** + * It takes a regular expression and a string, and returns an array of all the matches + * + * @param {string} regExp - The regular expression to match against. + * @param {string} str - The string to search. + * + * @returns {Array} + */ +const matchAll = (regExp, str) => { + let matches; + const arr = []; + + while ((matches = regExp.exec(str)) !== null) { + arr.push(matches); + } + + return arr; +}; + +/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */ +const isHTMLForm = kindOfTest('HTMLFormElement'); + +const toCamelCase = str => { + return str.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g, + function replacer(m, p1, p2) { + return p1.toUpperCase() + p2; + } + ); +}; + +/* Creating a function that will check if an object has a property. */ +const hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype); + +/** + * Determine if a value is a RegExp object + * + * @param {*} val The value to test + * + * @returns {boolean} True if value is a RegExp object, otherwise false + */ +const isRegExp = kindOfTest('RegExp'); + +const reduceDescriptors = (obj, reducer) => { + const descriptors = Object.getOwnPropertyDescriptors(obj); + const reducedDescriptors = {}; + + forEach(descriptors, (descriptor, name) => { + if (reducer(descriptor, name, obj) !== false) { + reducedDescriptors[name] = descriptor; + } + }); + + Object.defineProperties(obj, reducedDescriptors); +}; + +/** + * Makes all methods read-only + * @param {Object} obj + */ + +const freezeMethods = (obj) => { + reduceDescriptors(obj, (descriptor, name) => { + // skip restricted props in strict mode + if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) { + return false; + } + + const value = obj[name]; + + if (!isFunction(value)) return; + + descriptor.enumerable = false; + + if ('writable' in descriptor) { + descriptor.writable = false; + return; + } + + if (!descriptor.set) { + descriptor.set = () => { + throw Error('Can not rewrite read-only method \'' + name + '\''); + }; + } + }); +}; + +const toObjectSet = (arrayOrString, delimiter) => { + const obj = {}; + + const define = (arr) => { + arr.forEach(value => { + obj[value] = true; + }); + }; + + isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter)); + + return obj; +}; + +const noop = () => {}; + +const toFiniteNumber = (value, defaultValue) => { + value = +value; + return Number.isFinite(value) ? value : defaultValue; +}; + +const ALPHA = 'abcdefghijklmnopqrstuvwxyz'; + +const DIGIT = '0123456789'; + +const ALPHABET = { + DIGIT, + ALPHA, + ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT +}; + +const generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => { + let str = ''; + const {length} = alphabet; + while (size--) { + str += alphabet[Math.random() * length|0]; + } + + return str; +}; + +/** + * If the thing is a FormData object, return true, otherwise return false. + * + * @param {unknown} thing - The thing to check. + * + * @returns {boolean} + */ +function isSpecCompliantForm(thing) { + return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]); +} + +const toJSONObject = (obj) => { + const stack = new Array(10); + + const visit = (source, i) => { + + if (isObject(source)) { + if (stack.indexOf(source) >= 0) { + return; + } + + if(!('toJSON' in source)) { + stack[i] = source; + const target = isArray(source) ? [] : {}; + + forEach(source, (value, key) => { + const reducedValue = visit(value, i + 1); + !isUndefined(reducedValue) && (target[key] = reducedValue); + }); + + stack[i] = undefined; + + return target; + } + } + + return source; + }; + + return visit(obj, 0); +}; + +const utils = { + isArray, + isArrayBuffer, + isBuffer, + isFormData, + isArrayBufferView, + isString, + isNumber, + isBoolean, + isObject, + isPlainObject, + isUndefined, + isDate, + isFile, + isBlob, + isRegExp, + isFunction, + isStream, + isURLSearchParams, + isTypedArray, + isFileList, + forEach, + merge, + extend, + trim, + stripBOM, + inherits, + toFlatObject, + kindOf, + kindOfTest, + endsWith, + toArray, + forEachEntry, + matchAll, + isHTMLForm, + hasOwnProperty, + hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection + reduceDescriptors, + freezeMethods, + toObjectSet, + toCamelCase, + noop, + toFiniteNumber, + findKey, + global: _global, + isContextDefined, + ALPHABET, + generateString, + isSpecCompliantForm, + toJSONObject +}; + +/** + * Create an Error with the specified message, config, error code, request and response. + * + * @param {string} message The error message. + * @param {string} [code] The error code (for example, 'ECONNABORTED'). + * @param {Object} [config] The config. + * @param {Object} [request] The request. + * @param {Object} [response] The response. + * + * @returns {Error} The created error. + */ +function AxiosError(message, code, config, request, response) { + Error.call(this); + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, this.constructor); + } else { + this.stack = (new Error()).stack; + } + + this.message = message; + this.name = 'AxiosError'; + code && (this.code = code); + config && (this.config = config); + request && (this.request = request); + response && (this.response = response); +} + +utils.inherits(AxiosError, Error, { + toJSON: function toJSON() { + return { + // Standard + message: this.message, + name: this.name, + // Microsoft + description: this.description, + number: this.number, + // Mozilla + fileName: this.fileName, + lineNumber: this.lineNumber, + columnNumber: this.columnNumber, + stack: this.stack, + // Axios + config: utils.toJSONObject(this.config), + code: this.code, + status: this.response && this.response.status ? this.response.status : null + }; + } +}); + +const prototype$1 = AxiosError.prototype; +const descriptors = {}; + +[ + 'ERR_BAD_OPTION_VALUE', + 'ERR_BAD_OPTION', + 'ECONNABORTED', + 'ETIMEDOUT', + 'ERR_NETWORK', + 'ERR_FR_TOO_MANY_REDIRECTS', + 'ERR_DEPRECATED', + 'ERR_BAD_RESPONSE', + 'ERR_BAD_REQUEST', + 'ERR_CANCELED', + 'ERR_NOT_SUPPORT', + 'ERR_INVALID_URL' +// eslint-disable-next-line func-names +].forEach(code => { + descriptors[code] = {value: code}; +}); + +Object.defineProperties(AxiosError, descriptors); +Object.defineProperty(prototype$1, 'isAxiosError', {value: true}); + +// eslint-disable-next-line func-names +AxiosError.from = (error, code, config, request, response, customProps) => { + const axiosError = Object.create(prototype$1); + + utils.toFlatObject(error, axiosError, function filter(obj) { + return obj !== Error.prototype; + }, prop => { + return prop !== 'isAxiosError'; + }); + + AxiosError.call(axiosError, error.message, code, config, request, response); + + axiosError.cause = error; + + axiosError.name = error.name; + + customProps && Object.assign(axiosError, customProps); + + return axiosError; +}; + +/** + * Determines if the given thing is a array or js object. + * + * @param {string} thing - The object or array to be visited. + * + * @returns {boolean} + */ +function isVisitable(thing) { + return utils.isPlainObject(thing) || utils.isArray(thing); +} + +/** + * It removes the brackets from the end of a string + * + * @param {string} key - The key of the parameter. + * + * @returns {string} the key without the brackets. + */ +function removeBrackets(key) { + return utils.endsWith(key, '[]') ? key.slice(0, -2) : key; +} + +/** + * It takes a path, a key, and a boolean, and returns a string + * + * @param {string} path - The path to the current key. + * @param {string} key - The key of the current object being iterated over. + * @param {string} dots - If true, the key will be rendered with dots instead of brackets. + * + * @returns {string} The path to the current key. + */ +function renderKey(path, key, dots) { + if (!path) return key; + return path.concat(key).map(function each(token, i) { + // eslint-disable-next-line no-param-reassign + token = removeBrackets(token); + return !dots && i ? '[' + token + ']' : token; + }).join(dots ? '.' : ''); +} + +/** + * If the array is an array and none of its elements are visitable, then it's a flat array. + * + * @param {Array} arr - The array to check + * + * @returns {boolean} + */ +function isFlatArray(arr) { + return utils.isArray(arr) && !arr.some(isVisitable); +} + +const predicates = utils.toFlatObject(utils, {}, null, function filter(prop) { + return /^is[A-Z]/.test(prop); +}); + +/** + * Convert a data object to FormData + * + * @param {Object} obj + * @param {?Object} [formData] + * @param {?Object} [options] + * @param {Function} [options.visitor] + * @param {Boolean} [options.metaTokens = true] + * @param {Boolean} [options.dots = false] + * @param {?Boolean} [options.indexes = false] + * + * @returns {Object} + **/ + +/** + * It converts an object into a FormData object + * + * @param {Object} obj - The object to convert to form data. + * @param {string} formData - The FormData object to append to. + * @param {Object} options + * + * @returns + */ +function toFormData(obj, formData, options) { + if (!utils.isObject(obj)) { + throw new TypeError('target must be an object'); + } + + // eslint-disable-next-line no-param-reassign + formData = formData || new (FormData__default["default"] || FormData)(); + + // eslint-disable-next-line no-param-reassign + options = utils.toFlatObject(options, { + metaTokens: true, + dots: false, + indexes: false + }, false, function defined(option, source) { + // eslint-disable-next-line no-eq-null,eqeqeq + return !utils.isUndefined(source[option]); + }); + + const metaTokens = options.metaTokens; + // eslint-disable-next-line no-use-before-define + const visitor = options.visitor || defaultVisitor; + const dots = options.dots; + const indexes = options.indexes; + const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob; + const useBlob = _Blob && utils.isSpecCompliantForm(formData); + + if (!utils.isFunction(visitor)) { + throw new TypeError('visitor must be a function'); + } + + function convertValue(value) { + if (value === null) return ''; + + if (utils.isDate(value)) { + return value.toISOString(); + } + + if (!useBlob && utils.isBlob(value)) { + throw new AxiosError('Blob is not supported. Use a Buffer instead.'); + } + + if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) { + return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value); + } + + return value; + } + + /** + * Default visitor. + * + * @param {*} value + * @param {String|Number} key + * @param {Array} path + * @this {FormData} + * + * @returns {boolean} return true to visit the each prop of the value recursively + */ + function defaultVisitor(value, key, path) { + let arr = value; + + if (value && !path && typeof value === 'object') { + if (utils.endsWith(key, '{}')) { + // eslint-disable-next-line no-param-reassign + key = metaTokens ? key : key.slice(0, -2); + // eslint-disable-next-line no-param-reassign + value = JSON.stringify(value); + } else if ( + (utils.isArray(value) && isFlatArray(value)) || + ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value)) + )) { + // eslint-disable-next-line no-param-reassign + key = removeBrackets(key); + + arr.forEach(function each(el, index) { + !(utils.isUndefined(el) || el === null) && formData.append( + // eslint-disable-next-line no-nested-ternary + indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'), + convertValue(el) + ); + }); + return false; + } + } + + if (isVisitable(value)) { + return true; + } + + formData.append(renderKey(path, key, dots), convertValue(value)); + + return false; + } + + const stack = []; + + const exposedHelpers = Object.assign(predicates, { + defaultVisitor, + convertValue, + isVisitable + }); + + function build(value, path) { + if (utils.isUndefined(value)) return; + + if (stack.indexOf(value) !== -1) { + throw Error('Circular reference detected in ' + path.join('.')); + } + + stack.push(value); + + utils.forEach(value, function each(el, key) { + const result = !(utils.isUndefined(el) || el === null) && visitor.call( + formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers + ); + + if (result === true) { + build(el, path ? path.concat(key) : [key]); + } + }); + + stack.pop(); + } + + if (!utils.isObject(obj)) { + throw new TypeError('data must be an object'); + } + + build(obj); + + return formData; +} + +/** + * It encodes a string by replacing all characters that are not in the unreserved set with + * their percent-encoded equivalents + * + * @param {string} str - The string to encode. + * + * @returns {string} The encoded string. + */ +function encode$1(str) { + const charMap = { + '!': '%21', + "'": '%27', + '(': '%28', + ')': '%29', + '~': '%7E', + '%20': '+', + '%00': '\x00' + }; + return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) { + return charMap[match]; + }); +} + +/** + * It takes a params object and converts it to a FormData object + * + * @param {Object} params - The parameters to be converted to a FormData object. + * @param {Object} options - The options object passed to the Axios constructor. + * + * @returns {void} + */ +function AxiosURLSearchParams(params, options) { + this._pairs = []; + + params && toFormData(params, this, options); +} + +const prototype = AxiosURLSearchParams.prototype; + +prototype.append = function append(name, value) { + this._pairs.push([name, value]); +}; + +prototype.toString = function toString(encoder) { + const _encode = encoder ? function(value) { + return encoder.call(this, value, encode$1); + } : encode$1; + + return this._pairs.map(function each(pair) { + return _encode(pair[0]) + '=' + _encode(pair[1]); + }, '').join('&'); +}; + +/** + * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their + * URI encoded counterparts + * + * @param {string} val The value to be encoded. + * + * @returns {string} The encoded value. + */ +function encode(val) { + return encodeURIComponent(val). + replace(/%3A/gi, ':'). + replace(/%24/g, '$'). + replace(/%2C/gi, ','). + replace(/%20/g, '+'). + replace(/%5B/gi, '['). + replace(/%5D/gi, ']'); +} + +/** + * Build a URL by appending params to the end + * + * @param {string} url The base of the url (e.g., http://www.google.com) + * @param {object} [params] The params to be appended + * @param {?object} options + * + * @returns {string} The formatted url + */ +function buildURL(url, params, options) { + /*eslint no-param-reassign:0*/ + if (!params) { + return url; + } + + const _encode = options && options.encode || encode; + + const serializeFn = options && options.serialize; + + let serializedParams; + + if (serializeFn) { + serializedParams = serializeFn(params, options); + } else { + serializedParams = utils.isURLSearchParams(params) ? + params.toString() : + new AxiosURLSearchParams(params, options).toString(_encode); + } + + if (serializedParams) { + const hashmarkIndex = url.indexOf("#"); + + if (hashmarkIndex !== -1) { + url = url.slice(0, hashmarkIndex); + } + url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams; + } + + return url; +} + +class InterceptorManager { + constructor() { + this.handlers = []; + } + + /** + * Add a new interceptor to the stack + * + * @param {Function} fulfilled The function to handle `then` for a `Promise` + * @param {Function} rejected The function to handle `reject` for a `Promise` + * + * @return {Number} An ID used to remove interceptor later + */ + use(fulfilled, rejected, options) { + this.handlers.push({ + fulfilled, + rejected, + synchronous: options ? options.synchronous : false, + runWhen: options ? options.runWhen : null + }); + return this.handlers.length - 1; + } + + /** + * Remove an interceptor from the stack + * + * @param {Number} id The ID that was returned by `use` + * + * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise + */ + eject(id) { + if (this.handlers[id]) { + this.handlers[id] = null; + } + } + + /** + * Clear all interceptors from the stack + * + * @returns {void} + */ + clear() { + if (this.handlers) { + this.handlers = []; + } + } + + /** + * Iterate over all the registered interceptors + * + * This method is particularly useful for skipping over any + * interceptors that may have become `null` calling `eject`. + * + * @param {Function} fn The function to call for each interceptor + * + * @returns {void} + */ + forEach(fn) { + utils.forEach(this.handlers, function forEachHandler(h) { + if (h !== null) { + fn(h); + } + }); + } +} + +const InterceptorManager$1 = InterceptorManager; + +const transitionalDefaults = { + silentJSONParsing: true, + forcedJSONParsing: true, + clarifyTimeoutError: false +}; + +const URLSearchParams = url__default["default"].URLSearchParams; + +const platform = { + isNode: true, + classes: { + URLSearchParams, + FormData: FormData__default["default"], + Blob: typeof Blob !== 'undefined' && Blob || null + }, + protocols: [ 'http', 'https', 'file', 'data' ] +}; + +function toURLEncodedForm(data, options) { + return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({ + visitor: function(value, key, path, helpers) { + if (utils.isBuffer(value)) { + this.append(key, value.toString('base64')); + return false; + } + + return helpers.defaultVisitor.apply(this, arguments); + } + }, options)); +} + +/** + * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z'] + * + * @param {string} name - The name of the property to get. + * + * @returns An array of strings. + */ +function parsePropPath(name) { + // foo[x][y][z] + // foo.x.y.z + // foo-x-y-z + // foo x y z + return utils.matchAll(/\w+|\[(\w*)]/g, name).map(match => { + return match[0] === '[]' ? '' : match[1] || match[0]; + }); +} + +/** + * Convert an array to an object. + * + * @param {Array} arr - The array to convert to an object. + * + * @returns An object with the same keys and values as the array. + */ +function arrayToObject(arr) { + const obj = {}; + const keys = Object.keys(arr); + let i; + const len = keys.length; + let key; + for (i = 0; i < len; i++) { + key = keys[i]; + obj[key] = arr[key]; + } + return obj; +} + +/** + * It takes a FormData object and returns a JavaScript object + * + * @param {string} formData The FormData object to convert to JSON. + * + * @returns {Object | null} The converted object. + */ +function formDataToJSON(formData) { + function buildPath(path, value, target, index) { + let name = path[index++]; + const isNumericKey = Number.isFinite(+name); + const isLast = index >= path.length; + name = !name && utils.isArray(target) ? target.length : name; + + if (isLast) { + if (utils.hasOwnProp(target, name)) { + target[name] = [target[name], value]; + } else { + target[name] = value; + } + + return !isNumericKey; + } + + if (!target[name] || !utils.isObject(target[name])) { + target[name] = []; + } + + const result = buildPath(path, value, target[name], index); + + if (result && utils.isArray(target[name])) { + target[name] = arrayToObject(target[name]); + } + + return !isNumericKey; + } + + if (utils.isFormData(formData) && utils.isFunction(formData.entries)) { + const obj = {}; + + utils.forEachEntry(formData, (name, value) => { + buildPath(parsePropPath(name), value, obj, 0); + }); + + return obj; + } + + return null; +} + +const DEFAULT_CONTENT_TYPE = { + 'Content-Type': undefined +}; + +/** + * It takes a string, tries to parse it, and if it fails, it returns the stringified version + * of the input + * + * @param {any} rawValue - The value to be stringified. + * @param {Function} parser - A function that parses a string into a JavaScript object. + * @param {Function} encoder - A function that takes a value and returns a string. + * + * @returns {string} A stringified version of the rawValue. + */ +function stringifySafely(rawValue, parser, encoder) { + if (utils.isString(rawValue)) { + try { + (parser || JSON.parse)(rawValue); + return utils.trim(rawValue); + } catch (e) { + if (e.name !== 'SyntaxError') { + throw e; + } + } + } + + return (encoder || JSON.stringify)(rawValue); +} + +const defaults = { + + transitional: transitionalDefaults, + + adapter: ['xhr', 'http'], + + transformRequest: [function transformRequest(data, headers) { + const contentType = headers.getContentType() || ''; + const hasJSONContentType = contentType.indexOf('application/json') > -1; + const isObjectPayload = utils.isObject(data); + + if (isObjectPayload && utils.isHTMLForm(data)) { + data = new FormData(data); + } + + const isFormData = utils.isFormData(data); + + if (isFormData) { + if (!hasJSONContentType) { + return data; + } + return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data; + } + + if (utils.isArrayBuffer(data) || + utils.isBuffer(data) || + utils.isStream(data) || + utils.isFile(data) || + utils.isBlob(data) + ) { + return data; + } + if (utils.isArrayBufferView(data)) { + return data.buffer; + } + if (utils.isURLSearchParams(data)) { + headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false); + return data.toString(); + } + + let isFileList; + + if (isObjectPayload) { + if (contentType.indexOf('application/x-www-form-urlencoded') > -1) { + return toURLEncodedForm(data, this.formSerializer).toString(); + } + + if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) { + const _FormData = this.env && this.env.FormData; + + return toFormData( + isFileList ? {'files[]': data} : data, + _FormData && new _FormData(), + this.formSerializer + ); + } + } + + if (isObjectPayload || hasJSONContentType ) { + headers.setContentType('application/json', false); + return stringifySafely(data); + } + + return data; + }], + + transformResponse: [function transformResponse(data) { + const transitional = this.transitional || defaults.transitional; + const forcedJSONParsing = transitional && transitional.forcedJSONParsing; + const JSONRequested = this.responseType === 'json'; + + if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) { + const silentJSONParsing = transitional && transitional.silentJSONParsing; + const strictJSONParsing = !silentJSONParsing && JSONRequested; + + try { + return JSON.parse(data); + } catch (e) { + if (strictJSONParsing) { + if (e.name === 'SyntaxError') { + throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response); + } + throw e; + } + } + } + + return data; + }], + + /** + * A timeout in milliseconds to abort a request. If set to 0 (default) a + * timeout is not created. + */ + timeout: 0, + + xsrfCookieName: 'XSRF-TOKEN', + xsrfHeaderName: 'X-XSRF-TOKEN', + + maxContentLength: -1, + maxBodyLength: -1, + + env: { + FormData: platform.classes.FormData, + Blob: platform.classes.Blob + }, + + validateStatus: function validateStatus(status) { + return status >= 200 && status < 300; + }, + + headers: { + common: { + 'Accept': 'application/json, text/plain, */*' + } + } +}; + +utils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) { + defaults.headers[method] = {}; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE); +}); + +const defaults$1 = defaults; + +// RawAxiosHeaders whose duplicates are ignored by node +// c.f. https://nodejs.org/api/http.html#http_message_headers +const ignoreDuplicateOf = utils.toObjectSet([ + 'age', 'authorization', 'content-length', 'content-type', 'etag', + 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', + 'last-modified', 'location', 'max-forwards', 'proxy-authorization', + 'referer', 'retry-after', 'user-agent' +]); + +/** + * Parse headers into an object + * + * ``` + * Date: Wed, 27 Aug 2014 08:58:49 GMT + * Content-Type: application/json + * Connection: keep-alive + * Transfer-Encoding: chunked + * ``` + * + * @param {String} rawHeaders Headers needing to be parsed + * + * @returns {Object} Headers parsed into an object + */ +const parseHeaders = rawHeaders => { + const parsed = {}; + let key; + let val; + let i; + + rawHeaders && rawHeaders.split('\n').forEach(function parser(line) { + i = line.indexOf(':'); + key = line.substring(0, i).trim().toLowerCase(); + val = line.substring(i + 1).trim(); + + if (!key || (parsed[key] && ignoreDuplicateOf[key])) { + return; + } + + if (key === 'set-cookie') { + if (parsed[key]) { + parsed[key].push(val); + } else { + parsed[key] = [val]; + } + } else { + parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val; + } + }); + + return parsed; +}; + +const $internals = Symbol('internals'); + +function normalizeHeader(header) { + return header && String(header).trim().toLowerCase(); +} + +function normalizeValue(value) { + if (value === false || value == null) { + return value; + } + + return utils.isArray(value) ? value.map(normalizeValue) : String(value); +} + +function parseTokens(str) { + const tokens = Object.create(null); + const tokensRE = /([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g; + let match; + + while ((match = tokensRE.exec(str))) { + tokens[match[1]] = match[2]; + } + + return tokens; +} + +function isValidHeaderName(str) { + return /^[-_a-zA-Z]+$/.test(str.trim()); +} + +function matchHeaderValue(context, value, header, filter, isHeaderNameFilter) { + if (utils.isFunction(filter)) { + return filter.call(this, value, header); + } + + if (isHeaderNameFilter) { + value = header; + } + + if (!utils.isString(value)) return; + + if (utils.isString(filter)) { + return value.indexOf(filter) !== -1; + } + + if (utils.isRegExp(filter)) { + return filter.test(value); + } +} + +function formatHeader(header) { + return header.trim() + .toLowerCase().replace(/([a-z\d])(\w*)/g, (w, char, str) => { + return char.toUpperCase() + str; + }); +} + +function buildAccessors(obj, header) { + const accessorName = utils.toCamelCase(' ' + header); + + ['get', 'set', 'has'].forEach(methodName => { + Object.defineProperty(obj, methodName + accessorName, { + value: function(arg1, arg2, arg3) { + return this[methodName].call(this, header, arg1, arg2, arg3); + }, + configurable: true + }); + }); +} + +class AxiosHeaders { + constructor(headers) { + headers && this.set(headers); + } + + set(header, valueOrRewrite, rewrite) { + const self = this; + + function setHeader(_value, _header, _rewrite) { + const lHeader = normalizeHeader(_header); + + if (!lHeader) { + throw new Error('header name must be a non-empty string'); + } + + const key = utils.findKey(self, lHeader); + + if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) { + self[key || _header] = normalizeValue(_value); + } + } + + const setHeaders = (headers, _rewrite) => + utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite)); + + if (utils.isPlainObject(header) || header instanceof this.constructor) { + setHeaders(header, valueOrRewrite); + } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) { + setHeaders(parseHeaders(header), valueOrRewrite); + } else { + header != null && setHeader(valueOrRewrite, header, rewrite); + } + + return this; + } + + get(header, parser) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + if (key) { + const value = this[key]; + + if (!parser) { + return value; + } + + if (parser === true) { + return parseTokens(value); + } + + if (utils.isFunction(parser)) { + return parser.call(this, value, key); + } + + if (utils.isRegExp(parser)) { + return parser.exec(value); + } + + throw new TypeError('parser must be boolean|regexp|function'); + } + } + } + + has(header, matcher) { + header = normalizeHeader(header); + + if (header) { + const key = utils.findKey(this, header); + + return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher))); + } + + return false; + } + + delete(header, matcher) { + const self = this; + let deleted = false; + + function deleteHeader(_header) { + _header = normalizeHeader(_header); + + if (_header) { + const key = utils.findKey(self, _header); + + if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) { + delete self[key]; + + deleted = true; + } + } + } + + if (utils.isArray(header)) { + header.forEach(deleteHeader); + } else { + deleteHeader(header); + } + + return deleted; + } + + clear(matcher) { + const keys = Object.keys(this); + let i = keys.length; + let deleted = false; + + while (i--) { + const key = keys[i]; + if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) { + delete this[key]; + deleted = true; + } + } + + return deleted; + } + + normalize(format) { + const self = this; + const headers = {}; + + utils.forEach(this, (value, header) => { + const key = utils.findKey(headers, header); + + if (key) { + self[key] = normalizeValue(value); + delete self[header]; + return; + } + + const normalized = format ? formatHeader(header) : String(header).trim(); + + if (normalized !== header) { + delete self[header]; + } + + self[normalized] = normalizeValue(value); + + headers[normalized] = true; + }); + + return this; + } + + concat(...targets) { + return this.constructor.concat(this, ...targets); + } + + toJSON(asStrings) { + const obj = Object.create(null); + + utils.forEach(this, (value, header) => { + value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value); + }); + + return obj; + } + + [Symbol.iterator]() { + return Object.entries(this.toJSON())[Symbol.iterator](); + } + + toString() { + return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\n'); + } + + get [Symbol.toStringTag]() { + return 'AxiosHeaders'; + } + + static from(thing) { + return thing instanceof this ? thing : new this(thing); + } + + static concat(first, ...targets) { + const computed = new this(first); + + targets.forEach((target) => computed.set(target)); + + return computed; + } + + static accessor(header) { + const internals = this[$internals] = (this[$internals] = { + accessors: {} + }); + + const accessors = internals.accessors; + const prototype = this.prototype; + + function defineAccessor(_header) { + const lHeader = normalizeHeader(_header); + + if (!accessors[lHeader]) { + buildAccessors(prototype, _header); + accessors[lHeader] = true; + } + } + + utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header); + + return this; + } +} + +AxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']); + +utils.freezeMethods(AxiosHeaders.prototype); +utils.freezeMethods(AxiosHeaders); + +const AxiosHeaders$1 = AxiosHeaders; + +/** + * Transform the data for a request or a response + * + * @param {Array|Function} fns A single function or Array of functions + * @param {?Object} response The response object + * + * @returns {*} The resulting transformed data + */ +function transformData(fns, response) { + const config = this || defaults$1; + const context = response || config; + const headers = AxiosHeaders$1.from(context.headers); + let data = context.data; + + utils.forEach(fns, function transform(fn) { + data = fn.call(config, data, headers.normalize(), response ? response.status : undefined); + }); + + headers.normalize(); + + return data; +} + +function isCancel(value) { + return !!(value && value.__CANCEL__); +} + +/** + * A `CanceledError` is an object that is thrown when an operation is canceled. + * + * @param {string=} message The message. + * @param {Object=} config The config. + * @param {Object=} request The request. + * + * @returns {CanceledError} The created error. + */ +function CanceledError(message, config, request) { + // eslint-disable-next-line no-eq-null,eqeqeq + AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request); + this.name = 'CanceledError'; +} + +utils.inherits(CanceledError, AxiosError, { + __CANCEL__: true +}); + +/** + * Resolve or reject a Promise based on response status. + * + * @param {Function} resolve A function that resolves the promise. + * @param {Function} reject A function that rejects the promise. + * @param {object} response The response. + * + * @returns {object} The response. + */ +function settle(resolve, reject, response) { + const validateStatus = response.config.validateStatus; + if (!response.status || !validateStatus || validateStatus(response.status)) { + resolve(response); + } else { + reject(new AxiosError( + 'Request failed with status code ' + response.status, + [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4], + response.config, + response.request, + response + )); + } +} + +/** + * Determines whether the specified URL is absolute + * + * @param {string} url The URL to test + * + * @returns {boolean} True if the specified URL is absolute, otherwise false + */ +function isAbsoluteURL(url) { + // A URL is considered absolute if it begins with "://" or "//" (protocol-relative URL). + // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed + // by any combination of letters, digits, plus, period, or hyphen. + return /^([a-z][a-z\d+\-.]*:)?\/\//i.test(url); +} + +/** + * Creates a new URL by combining the specified URLs + * + * @param {string} baseURL The base URL + * @param {string} relativeURL The relative URL + * + * @returns {string} The combined URL + */ +function combineURLs(baseURL, relativeURL) { + return relativeURL + ? baseURL.replace(/\/+$/, '') + '/' + relativeURL.replace(/^\/+/, '') + : baseURL; +} + +/** + * Creates a new URL by combining the baseURL with the requestedURL, + * only when the requestedURL is not already an absolute URL. + * If the requestURL is absolute, this function returns the requestedURL untouched. + * + * @param {string} baseURL The base URL + * @param {string} requestedURL Absolute or relative URL to combine + * + * @returns {string} The combined full path + */ +function buildFullPath(baseURL, requestedURL) { + if (baseURL && !isAbsoluteURL(requestedURL)) { + return combineURLs(baseURL, requestedURL); + } + return requestedURL; +} + +const VERSION = "1.3.4"; + +function parseProtocol(url) { + const match = /^([-+\w]{1,25})(:?\/\/|:)/.exec(url); + return match && match[1] || ''; +} + +const DATA_URL_PATTERN = /^(?:([^;]+);)?(?:[^;]+;)?(base64|),([\s\S]*)$/; + +/** + * Parse data uri to a Buffer or Blob + * + * @param {String} uri + * @param {?Boolean} asBlob + * @param {?Object} options + * @param {?Function} options.Blob + * + * @returns {Buffer|Blob} + */ +function fromDataURI(uri, asBlob, options) { + const _Blob = options && options.Blob || platform.classes.Blob; + const protocol = parseProtocol(uri); + + if (asBlob === undefined && _Blob) { + asBlob = true; + } + + if (protocol === 'data') { + uri = protocol.length ? uri.slice(protocol.length + 1) : uri; + + const match = DATA_URL_PATTERN.exec(uri); + + if (!match) { + throw new AxiosError('Invalid URL', AxiosError.ERR_INVALID_URL); + } + + const mime = match[1]; + const isBase64 = match[2]; + const body = match[3]; + const buffer = Buffer.from(decodeURIComponent(body), isBase64 ? 'base64' : 'utf8'); + + if (asBlob) { + if (!_Blob) { + throw new AxiosError('Blob is not supported', AxiosError.ERR_NOT_SUPPORT); + } + + return new _Blob([buffer], {type: mime}); + } + + return buffer; + } + + throw new AxiosError('Unsupported protocol ' + protocol, AxiosError.ERR_NOT_SUPPORT); +} + +/** + * Throttle decorator + * @param {Function} fn + * @param {Number} freq + * @return {Function} + */ +function throttle(fn, freq) { + let timestamp = 0; + const threshold = 1000 / freq; + let timer = null; + return function throttled(force, args) { + const now = Date.now(); + if (force || now - timestamp > threshold) { + if (timer) { + clearTimeout(timer); + timer = null; + } + timestamp = now; + return fn.apply(null, args); + } + if (!timer) { + timer = setTimeout(() => { + timer = null; + timestamp = Date.now(); + return fn.apply(null, args); + }, threshold - (now - timestamp)); + } + }; +} + +/** + * Calculate data maxRate + * @param {Number} [samplesCount= 10] + * @param {Number} [min= 1000] + * @returns {Function} + */ +function speedometer(samplesCount, min) { + samplesCount = samplesCount || 10; + const bytes = new Array(samplesCount); + const timestamps = new Array(samplesCount); + let head = 0; + let tail = 0; + let firstSampleTS; + + min = min !== undefined ? min : 1000; + + return function push(chunkLength) { + const now = Date.now(); + + const startedAt = timestamps[tail]; + + if (!firstSampleTS) { + firstSampleTS = now; + } + + bytes[head] = chunkLength; + timestamps[head] = now; + + let i = tail; + let bytesCount = 0; + + while (i !== head) { + bytesCount += bytes[i++]; + i = i % samplesCount; + } + + head = (head + 1) % samplesCount; + + if (head === tail) { + tail = (tail + 1) % samplesCount; + } + + if (now - firstSampleTS < min) { + return; + } + + const passed = startedAt && now - startedAt; + + return passed ? Math.round(bytesCount * 1000 / passed) : undefined; + }; +} + +const kInternals = Symbol('internals'); + +class AxiosTransformStream extends stream__default["default"].Transform{ + constructor(options) { + options = utils.toFlatObject(options, { + maxRate: 0, + chunkSize: 64 * 1024, + minChunkSize: 100, + timeWindow: 500, + ticksRate: 2, + samplesCount: 15 + }, null, (prop, source) => { + return !utils.isUndefined(source[prop]); + }); + + super({ + readableHighWaterMark: options.chunkSize + }); + + const self = this; + + const internals = this[kInternals] = { + length: options.length, + timeWindow: options.timeWindow, + ticksRate: options.ticksRate, + chunkSize: options.chunkSize, + maxRate: options.maxRate, + minChunkSize: options.minChunkSize, + bytesSeen: 0, + isCaptured: false, + notifiedBytesLoaded: 0, + ts: Date.now(), + bytes: 0, + onReadCallback: null + }; + + const _speedometer = speedometer(internals.ticksRate * options.samplesCount, internals.timeWindow); + + this.on('newListener', event => { + if (event === 'progress') { + if (!internals.isCaptured) { + internals.isCaptured = true; + } + } + }); + + let bytesNotified = 0; + + internals.updateProgress = throttle(function throttledHandler() { + const totalBytes = internals.length; + const bytesTransferred = internals.bytesSeen; + const progressBytes = bytesTransferred - bytesNotified; + if (!progressBytes || self.destroyed) return; + + const rate = _speedometer(progressBytes); + + bytesNotified = bytesTransferred; + + process.nextTick(() => { + self.emit('progress', { + 'loaded': bytesTransferred, + 'total': totalBytes, + 'progress': totalBytes ? (bytesTransferred / totalBytes) : undefined, + 'bytes': progressBytes, + 'rate': rate ? rate : undefined, + 'estimated': rate && totalBytes && bytesTransferred <= totalBytes ? + (totalBytes - bytesTransferred) / rate : undefined + }); + }); + }, internals.ticksRate); + + const onFinish = () => { + internals.updateProgress(true); + }; + + this.once('end', onFinish); + this.once('error', onFinish); + } + + _read(size) { + const internals = this[kInternals]; + + if (internals.onReadCallback) { + internals.onReadCallback(); + } + + return super._read(size); + } + + _transform(chunk, encoding, callback) { + const self = this; + const internals = this[kInternals]; + const maxRate = internals.maxRate; + + const readableHighWaterMark = this.readableHighWaterMark; + + const timeWindow = internals.timeWindow; + + const divider = 1000 / timeWindow; + const bytesThreshold = (maxRate / divider); + const minChunkSize = internals.minChunkSize !== false ? Math.max(internals.minChunkSize, bytesThreshold * 0.01) : 0; + + function pushChunk(_chunk, _callback) { + const bytes = Buffer.byteLength(_chunk); + internals.bytesSeen += bytes; + internals.bytes += bytes; + + if (internals.isCaptured) { + internals.updateProgress(); + } + + if (self.push(_chunk)) { + process.nextTick(_callback); + } else { + internals.onReadCallback = () => { + internals.onReadCallback = null; + process.nextTick(_callback); + }; + } + } + + const transformChunk = (_chunk, _callback) => { + const chunkSize = Buffer.byteLength(_chunk); + let chunkRemainder = null; + let maxChunkSize = readableHighWaterMark; + let bytesLeft; + let passed = 0; + + if (maxRate) { + const now = Date.now(); + + if (!internals.ts || (passed = (now - internals.ts)) >= timeWindow) { + internals.ts = now; + bytesLeft = bytesThreshold - internals.bytes; + internals.bytes = bytesLeft < 0 ? -bytesLeft : 0; + passed = 0; + } + + bytesLeft = bytesThreshold - internals.bytes; + } + + if (maxRate) { + if (bytesLeft <= 0) { + // next time window + return setTimeout(() => { + _callback(null, _chunk); + }, timeWindow - passed); + } + + if (bytesLeft < maxChunkSize) { + maxChunkSize = bytesLeft; + } + } + + if (maxChunkSize && chunkSize > maxChunkSize && (chunkSize - maxChunkSize) > minChunkSize) { + chunkRemainder = _chunk.subarray(maxChunkSize); + _chunk = _chunk.subarray(0, maxChunkSize); + } + + pushChunk(_chunk, chunkRemainder ? () => { + process.nextTick(_callback, null, chunkRemainder); + } : _callback); + }; + + transformChunk(chunk, function transformNextChunk(err, _chunk) { + if (err) { + return callback(err); + } + + if (_chunk) { + transformChunk(_chunk, transformNextChunk); + } else { + callback(null); + } + }); + } + + setLength(length) { + this[kInternals].length = +length; + return this; + } +} + +const AxiosTransformStream$1 = AxiosTransformStream; + +const {asyncIterator} = Symbol; + +const readBlob = async function* (blob) { + if (blob.stream) { + yield* blob.stream(); + } else if (blob.arrayBuffer) { + yield await blob.arrayBuffer(); + } else if (blob[asyncIterator]) { + yield* blob[asyncIterator](); + } else { + yield blob; + } +}; + +const readBlob$1 = readBlob; + +const BOUNDARY_ALPHABET = utils.ALPHABET.ALPHA_DIGIT + '-_'; + +const textEncoder = new util.TextEncoder(); + +const CRLF = '\r\n'; +const CRLF_BYTES = textEncoder.encode(CRLF); +const CRLF_BYTES_COUNT = 2; + +class FormDataPart { + constructor(name, value) { + const {escapeName} = this.constructor; + const isStringValue = utils.isString(value); + + let headers = `Content-Disposition: form-data; name="${escapeName(name)}"${ + !isStringValue && value.name ? `; filename="${escapeName(value.name)}"` : '' + }${CRLF}`; + + if (isStringValue) { + value = textEncoder.encode(String(value).replace(/\r?\n|\r\n?/g, CRLF)); + } else { + headers += `Content-Type: ${value.type || "application/octet-stream"}${CRLF}`; + } + + this.headers = textEncoder.encode(headers + CRLF); + + this.contentLength = isStringValue ? value.byteLength : value.size; + + this.size = this.headers.byteLength + this.contentLength + CRLF_BYTES_COUNT; + + this.name = name; + this.value = value; + } + + async *encode(){ + yield this.headers; + + const {value} = this; + + if(utils.isTypedArray(value)) { + yield value; + } else { + yield* readBlob$1(value); + } + + yield CRLF_BYTES; + } + + static escapeName(name) { + return String(name).replace(/[\r\n"]/g, (match) => ({ + '\r' : '%0D', + '\n' : '%0A', + '"' : '%22', + }[match])); + } +} + +const formDataToStream = (form, headersHandler, options) => { + const { + tag = 'form-data-boundary', + size = 25, + boundary = tag + '-' + utils.generateString(size, BOUNDARY_ALPHABET) + } = options || {}; + + if(!utils.isFormData(form)) { + throw TypeError('FormData instance required'); + } + + if (boundary.length < 1 || boundary.length > 70) { + throw Error('boundary must be 10-70 characters long') + } + + const boundaryBytes = textEncoder.encode('--' + boundary + CRLF); + const footerBytes = textEncoder.encode('--' + boundary + '--' + CRLF + CRLF); + let contentLength = footerBytes.byteLength; + + const parts = Array.from(form.entries()).map(([name, value]) => { + const part = new FormDataPart(name, value); + contentLength += part.size; + return part; + }); + + contentLength += boundaryBytes.byteLength * parts.length; + + contentLength = utils.toFiniteNumber(contentLength); + + const computedHeaders = { + 'Content-Type': `multipart/form-data; boundary=${boundary}` + }; + + if (Number.isFinite(contentLength)) { + computedHeaders['Content-Length'] = contentLength; + } + + headersHandler && headersHandler(computedHeaders); + + return stream.Readable.from((async function *() { + for(const part of parts) { + yield boundaryBytes; + yield* part.encode(); + } + + yield footerBytes; + })()); +}; + +const formDataToStream$1 = formDataToStream; + +class ZlibHeaderTransformStream extends stream__default["default"].Transform { + __transform(chunk, encoding, callback) { + this.push(chunk); + callback(); + } + + _transform(chunk, encoding, callback) { + if (chunk.length !== 0) { + this._transform = this.__transform; + + // Add Default Compression headers if no zlib headers are present + if (chunk[0] !== 120) { // Hex: 78 + const header = Buffer.alloc(2); + header[0] = 120; // Hex: 78 + header[1] = 156; // Hex: 9C + this.push(header, encoding); + } + } + + this.__transform(chunk, encoding, callback); + } +} + +const ZlibHeaderTransformStream$1 = ZlibHeaderTransformStream; + +const zlibOptions = { + flush: zlib__default["default"].constants.Z_SYNC_FLUSH, + finishFlush: zlib__default["default"].constants.Z_SYNC_FLUSH +}; + +const brotliOptions = { + flush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH, + finishFlush: zlib__default["default"].constants.BROTLI_OPERATION_FLUSH +}; + +const isBrotliSupported = utils.isFunction(zlib__default["default"].createBrotliDecompress); + +const {http: httpFollow, https: httpsFollow} = followRedirects__default["default"]; + +const isHttps = /https:?/; + +const supportedProtocols = platform.protocols.map(protocol => { + return protocol + ':'; +}); + +/** + * If the proxy or config beforeRedirects functions are defined, call them with the options + * object. + * + * @param {Object} options - The options object that was passed to the request. + * + * @returns {Object} + */ +function dispatchBeforeRedirect(options) { + if (options.beforeRedirects.proxy) { + options.beforeRedirects.proxy(options); + } + if (options.beforeRedirects.config) { + options.beforeRedirects.config(options); + } +} + +/** + * If the proxy or config afterRedirects functions are defined, call them with the options + * + * @param {http.ClientRequestArgs} options + * @param {AxiosProxyConfig} configProxy configuration from Axios options object + * @param {string} location + * + * @returns {http.ClientRequestArgs} + */ +function setProxy(options, configProxy, location) { + let proxy = configProxy; + if (!proxy && proxy !== false) { + const proxyUrl = proxyFromEnv.getProxyForUrl(location); + if (proxyUrl) { + proxy = new URL(proxyUrl); + } + } + if (proxy) { + // Basic proxy authorization + if (proxy.username) { + proxy.auth = (proxy.username || '') + ':' + (proxy.password || ''); + } + + if (proxy.auth) { + // Support proxy auth object form + if (proxy.auth.username || proxy.auth.password) { + proxy.auth = (proxy.auth.username || '') + ':' + (proxy.auth.password || ''); + } + const base64 = Buffer + .from(proxy.auth, 'utf8') + .toString('base64'); + options.headers['Proxy-Authorization'] = 'Basic ' + base64; + } + + options.headers.host = options.hostname + (options.port ? ':' + options.port : ''); + const proxyHost = proxy.hostname || proxy.host; + options.hostname = proxyHost; + // Replace 'host' since options is not a URL object + options.host = proxyHost; + options.port = proxy.port; + options.path = location; + if (proxy.protocol) { + options.protocol = proxy.protocol.includes(':') ? proxy.protocol : `${proxy.protocol}:`; + } + } + + options.beforeRedirects.proxy = function beforeRedirect(redirectOptions) { + // Configure proxy for redirected request, passing the original config proxy to apply + // the exact same logic as if the redirected request was performed by axios directly. + setProxy(redirectOptions, configProxy, redirectOptions.href); + }; +} + +const isHttpAdapterSupported = typeof process !== 'undefined' && utils.kindOf(process) === 'process'; + +// temporary hotfix + +const wrapAsync = (asyncExecutor) => { + return new Promise((resolve, reject) => { + let onDone; + let isDone; + + const done = (value, isRejected) => { + if (isDone) return; + isDone = true; + onDone && onDone(value, isRejected); + }; + + const _resolve = (value) => { + done(value); + resolve(value); + }; + + const _reject = (reason) => { + done(reason, true); + reject(reason); + }; + + asyncExecutor(_resolve, _reject, (onDoneHandler) => (onDone = onDoneHandler)).catch(_reject); + }) +}; + +/*eslint consistent-return:0*/ +const httpAdapter = isHttpAdapterSupported && function httpAdapter(config) { + return wrapAsync(async function dispatchHttpRequest(resolve, reject, onDone) { + let {data} = config; + const {responseType, responseEncoding} = config; + const method = config.method.toUpperCase(); + let isDone; + let rejected = false; + let req; + + // temporary internal emitter until the AxiosRequest class will be implemented + const emitter = new EventEmitter__default["default"](); + + const onFinished = () => { + if (config.cancelToken) { + config.cancelToken.unsubscribe(abort); + } + + if (config.signal) { + config.signal.removeEventListener('abort', abort); + } + + emitter.removeAllListeners(); + }; + + onDone((value, isRejected) => { + isDone = true; + if (isRejected) { + rejected = true; + onFinished(); + } + }); + + function abort(reason) { + emitter.emit('abort', !reason || reason.type ? new CanceledError(null, config, req) : reason); + } + + emitter.once('abort', reject); + + if (config.cancelToken || config.signal) { + config.cancelToken && config.cancelToken.subscribe(abort); + if (config.signal) { + config.signal.aborted ? abort() : config.signal.addEventListener('abort', abort); + } + } + + // Parse url + const fullPath = buildFullPath(config.baseURL, config.url); + const parsed = new URL(fullPath, 'http://localhost'); + const protocol = parsed.protocol || supportedProtocols[0]; + + if (protocol === 'data:') { + let convertedData; + + if (method !== 'GET') { + return settle(resolve, reject, { + status: 405, + statusText: 'method not allowed', + headers: {}, + config + }); + } + + try { + convertedData = fromDataURI(config.url, responseType === 'blob', { + Blob: config.env && config.env.Blob + }); + } catch (err) { + throw AxiosError.from(err, AxiosError.ERR_BAD_REQUEST, config); + } + + if (responseType === 'text') { + convertedData = convertedData.toString(responseEncoding); + + if (!responseEncoding || responseEncoding === 'utf8') { + convertedData = utils.stripBOM(convertedData); + } + } else if (responseType === 'stream') { + convertedData = stream__default["default"].Readable.from(convertedData); + } + + return settle(resolve, reject, { + data: convertedData, + status: 200, + statusText: 'OK', + headers: new AxiosHeaders$1(), + config + }); + } + + if (supportedProtocols.indexOf(protocol) === -1) { + return reject(new AxiosError( + 'Unsupported protocol ' + protocol, + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + const headers = AxiosHeaders$1.from(config.headers).normalize(); + + // Set User-Agent (required by some servers) + // See https://github.com/axios/axios/issues/69 + // User-Agent is specified; handle case where no UA header is desired + // Only set header if it hasn't been set in config + headers.set('User-Agent', 'axios/' + VERSION, false); + + const onDownloadProgress = config.onDownloadProgress; + const onUploadProgress = config.onUploadProgress; + const maxRate = config.maxRate; + let maxUploadRate = undefined; + let maxDownloadRate = undefined; + + // support for spec compliant FormData objects + if (utils.isSpecCompliantForm(data)) { + const userBoundary = headers.getContentType(/boundary=([-_\w\d]{10,70})/i); + + data = formDataToStream$1(data, (formHeaders) => { + headers.set(formHeaders); + }, { + tag: `axios-${VERSION}-boundary`, + boundary: userBoundary && userBoundary[1] || undefined + }); + // support for https://www.npmjs.com/package/form-data api + } else if (utils.isFormData(data) && utils.isFunction(data.getHeaders)) { + headers.set(data.getHeaders()); + + if (!headers.hasContentLength()) { + try { + const knownLength = await util__default["default"].promisify(data.getLength).call(data); + Number.isFinite(knownLength) && knownLength >= 0 && headers.setContentLength(knownLength); + /*eslint no-empty:0*/ + } catch (e) { + } + } + } else if (utils.isBlob(data)) { + data.size && headers.setContentType(data.type || 'application/octet-stream'); + headers.setContentLength(data.size || 0); + data = stream__default["default"].Readable.from(readBlob$1(data)); + } else if (data && !utils.isStream(data)) { + if (Buffer.isBuffer(data)) ; else if (utils.isArrayBuffer(data)) { + data = Buffer.from(new Uint8Array(data)); + } else if (utils.isString(data)) { + data = Buffer.from(data, 'utf-8'); + } else { + return reject(new AxiosError( + 'Data after transformation must be a string, an ArrayBuffer, a Buffer, or a Stream', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + + // Add Content-Length header if data exists + headers.setContentLength(data.length, false); + + if (config.maxBodyLength > -1 && data.length > config.maxBodyLength) { + return reject(new AxiosError( + 'Request body larger than maxBodyLength limit', + AxiosError.ERR_BAD_REQUEST, + config + )); + } + } + + const contentLength = utils.toFiniteNumber(headers.getContentLength()); + + if (utils.isArray(maxRate)) { + maxUploadRate = maxRate[0]; + maxDownloadRate = maxRate[1]; + } else { + maxUploadRate = maxDownloadRate = maxRate; + } + + if (data && (onUploadProgress || maxUploadRate)) { + if (!utils.isStream(data)) { + data = stream__default["default"].Readable.from(data, {objectMode: false}); + } + + data = stream__default["default"].pipeline([data, new AxiosTransformStream$1({ + length: contentLength, + maxRate: utils.toFiniteNumber(maxUploadRate) + })], utils.noop); + + onUploadProgress && data.on('progress', progress => { + onUploadProgress(Object.assign(progress, { + upload: true + })); + }); + } + + // HTTP basic authentication + let auth = undefined; + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password || ''; + auth = username + ':' + password; + } + + if (!auth && parsed.username) { + const urlUsername = parsed.username; + const urlPassword = parsed.password; + auth = urlUsername + ':' + urlPassword; + } + + auth && headers.delete('authorization'); + + let path; + + try { + path = buildURL( + parsed.pathname + parsed.search, + config.params, + config.paramsSerializer + ).replace(/^\?/, ''); + } catch (err) { + const customErr = new Error(err.message); + customErr.config = config; + customErr.url = config.url; + customErr.exists = true; + return reject(customErr); + } + + headers.set( + 'Accept-Encoding', + 'gzip, compress, deflate' + (isBrotliSupported ? ', br' : ''), false + ); + + const options = { + path, + method: method, + headers: headers.toJSON(), + agents: { http: config.httpAgent, https: config.httpsAgent }, + auth, + protocol, + beforeRedirect: dispatchBeforeRedirect, + beforeRedirects: {} + }; + + if (config.socketPath) { + options.socketPath = config.socketPath; + } else { + options.hostname = parsed.hostname; + options.port = parsed.port; + setProxy(options, config.proxy, protocol + '//' + parsed.hostname + (parsed.port ? ':' + parsed.port : '') + options.path); + } + + let transport; + const isHttpsRequest = isHttps.test(options.protocol); + options.agent = isHttpsRequest ? config.httpsAgent : config.httpAgent; + if (config.transport) { + transport = config.transport; + } else if (config.maxRedirects === 0) { + transport = isHttpsRequest ? https__default["default"] : http__default["default"]; + } else { + if (config.maxRedirects) { + options.maxRedirects = config.maxRedirects; + } + if (config.beforeRedirect) { + options.beforeRedirects.config = config.beforeRedirect; + } + transport = isHttpsRequest ? httpsFollow : httpFollow; + } + + if (config.maxBodyLength > -1) { + options.maxBodyLength = config.maxBodyLength; + } else { + // follow-redirects does not skip comparison, so it should always succeed for axios -1 unlimited + options.maxBodyLength = Infinity; + } + + if (config.insecureHTTPParser) { + options.insecureHTTPParser = config.insecureHTTPParser; + } + + // Create the request + req = transport.request(options, function handleResponse(res) { + if (req.destroyed) return; + + const streams = [res]; + + const responseLength = +res.headers['content-length']; + + if (onDownloadProgress) { + const transformStream = new AxiosTransformStream$1({ + length: utils.toFiniteNumber(responseLength), + maxRate: utils.toFiniteNumber(maxDownloadRate) + }); + + onDownloadProgress && transformStream.on('progress', progress => { + onDownloadProgress(Object.assign(progress, { + download: true + })); + }); + + streams.push(transformStream); + } + + // decompress the response body transparently if required + let responseStream = res; + + // return the last request in case of redirects + const lastRequest = res.req || req; + + // if decompress disabled we should not decompress + if (config.decompress !== false && res.headers['content-encoding']) { + // if no content, but headers still say that it is encoded, + // remove the header not confuse downstream operations + if (method === 'HEAD' || res.statusCode === 204) { + delete res.headers['content-encoding']; + } + + switch (res.headers['content-encoding']) { + /*eslint default-case:0*/ + case 'gzip': + case 'x-gzip': + case 'compress': + case 'x-compress': + // add the unzipper to the body stream processing pipeline + streams.push(zlib__default["default"].createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'deflate': + streams.push(new ZlibHeaderTransformStream$1()); + + // add the unzipper to the body stream processing pipeline + streams.push(zlib__default["default"].createUnzip(zlibOptions)); + + // remove the content-encoding in order to not confuse downstream operations + delete res.headers['content-encoding']; + break; + case 'br': + if (isBrotliSupported) { + streams.push(zlib__default["default"].createBrotliDecompress(brotliOptions)); + delete res.headers['content-encoding']; + } + } + } + + responseStream = streams.length > 1 ? stream__default["default"].pipeline(streams, utils.noop) : streams[0]; + + const offListeners = stream__default["default"].finished(responseStream, () => { + offListeners(); + onFinished(); + }); + + const response = { + status: res.statusCode, + statusText: res.statusMessage, + headers: new AxiosHeaders$1(res.headers), + config, + request: lastRequest + }; + + if (responseType === 'stream') { + response.data = responseStream; + settle(resolve, reject, response); + } else { + const responseBuffer = []; + let totalResponseBytes = 0; + + responseStream.on('data', function handleStreamData(chunk) { + responseBuffer.push(chunk); + totalResponseBytes += chunk.length; + + // make sure the content length is not over the maxContentLength if specified + if (config.maxContentLength > -1 && totalResponseBytes > config.maxContentLength) { + // stream.destroy() emit aborted event before calling reject() on Node.js v16 + rejected = true; + responseStream.destroy(); + reject(new AxiosError('maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, config, lastRequest)); + } + }); + + responseStream.on('aborted', function handlerStreamAborted() { + if (rejected) { + return; + } + + const err = new AxiosError( + 'maxContentLength size of ' + config.maxContentLength + ' exceeded', + AxiosError.ERR_BAD_RESPONSE, + config, + lastRequest + ); + responseStream.destroy(err); + reject(err); + }); + + responseStream.on('error', function handleStreamError(err) { + if (req.destroyed) return; + reject(AxiosError.from(err, null, config, lastRequest)); + }); + + responseStream.on('end', function handleStreamEnd() { + try { + let responseData = responseBuffer.length === 1 ? responseBuffer[0] : Buffer.concat(responseBuffer); + if (responseType !== 'arraybuffer') { + responseData = responseData.toString(responseEncoding); + if (!responseEncoding || responseEncoding === 'utf8') { + responseData = utils.stripBOM(responseData); + } + } + response.data = responseData; + } catch (err) { + reject(AxiosError.from(err, null, config, response.request, response)); + } + settle(resolve, reject, response); + }); + } + + emitter.once('abort', err => { + if (!responseStream.destroyed) { + responseStream.emit('error', err); + responseStream.destroy(); + } + }); + }); + + emitter.once('abort', err => { + reject(err); + req.destroy(err); + }); + + // Handle errors + req.on('error', function handleRequestError(err) { + // @todo remove + // if (req.aborted && err.code !== AxiosError.ERR_FR_TOO_MANY_REDIRECTS) return; + reject(AxiosError.from(err, null, config, req)); + }); + + // set tcp keep alive to prevent drop connection by peer + req.on('socket', function handleRequestSocket(socket) { + // default interval of sending ack packet is 1 minute + socket.setKeepAlive(true, 1000 * 60); + }); + + // Handle request timeout + if (config.timeout) { + // This is forcing a int timeout to avoid problems if the `req` interface doesn't handle other types. + const timeout = parseInt(config.timeout, 10); + + if (isNaN(timeout)) { + reject(new AxiosError( + 'error trying to parse `config.timeout` to int', + AxiosError.ERR_BAD_OPTION_VALUE, + config, + req + )); + + return; + } + + // Sometime, the response will be very slow, and does not respond, the connect event will be block by event loop system. + // And timer callback will be fired, and abort() will be invoked before connection, then get "socket hang up" and code ECONNRESET. + // At this time, if we have a large number of request, nodejs will hang up some socket on background. and the number will up and up. + // And then these socket which be hang up will devouring CPU little by little. + // ClientRequest.setTimeout will be fired on the specify milliseconds, and can make sure that abort() will be fired after connect. + req.setTimeout(timeout, function handleRequestTimeout() { + if (isDone) return; + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + req + )); + abort(); + }); + } + + + // Send the request + if (utils.isStream(data)) { + let ended = false; + let errored = false; + + data.on('end', () => { + ended = true; + }); + + data.once('error', err => { + errored = true; + req.destroy(err); + }); + + data.on('close', () => { + if (!ended && !errored) { + abort(new CanceledError('Request stream has been aborted', config, req)); + } + }); + + data.pipe(req); + } else { + req.end(data); + } + }); +}; + +const cookies = platform.isStandardBrowserEnv ? + +// Standard browser envs support document.cookie + (function standardBrowserEnv() { + return { + write: function write(name, value, expires, path, domain, secure) { + const cookie = []; + cookie.push(name + '=' + encodeURIComponent(value)); + + if (utils.isNumber(expires)) { + cookie.push('expires=' + new Date(expires).toGMTString()); + } + + if (utils.isString(path)) { + cookie.push('path=' + path); + } + + if (utils.isString(domain)) { + cookie.push('domain=' + domain); + } + + if (secure === true) { + cookie.push('secure'); + } + + document.cookie = cookie.join('; '); + }, + + read: function read(name) { + const match = document.cookie.match(new RegExp('(^|;\\s*)(' + name + ')=([^;]*)')); + return (match ? decodeURIComponent(match[3]) : null); + }, + + remove: function remove(name) { + this.write(name, '', Date.now() - 86400000); + } + }; + })() : + +// Non standard browser env (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return { + write: function write() {}, + read: function read() { return null; }, + remove: function remove() {} + }; + })(); + +const isURLSameOrigin = platform.isStandardBrowserEnv ? + +// Standard browser envs have full support of the APIs needed to test +// whether the request URL is of the same origin as current location. + (function standardBrowserEnv() { + const msie = /(msie|trident)/i.test(navigator.userAgent); + const urlParsingNode = document.createElement('a'); + let originURL; + + /** + * Parse a URL to discover it's components + * + * @param {String} url The URL to be parsed + * @returns {Object} + */ + function resolveURL(url) { + let href = url; + + if (msie) { + // IE needs attribute set twice to normalize properties + urlParsingNode.setAttribute('href', href); + href = urlParsingNode.href; + } + + urlParsingNode.setAttribute('href', href); + + // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils + return { + href: urlParsingNode.href, + protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '', + host: urlParsingNode.host, + search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, '') : '', + hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '', + hostname: urlParsingNode.hostname, + port: urlParsingNode.port, + pathname: (urlParsingNode.pathname.charAt(0) === '/') ? + urlParsingNode.pathname : + '/' + urlParsingNode.pathname + }; + } + + originURL = resolveURL(window.location.href); + + /** + * Determine if a URL shares the same origin as the current location + * + * @param {String} requestURL The URL to test + * @returns {boolean} True if URL shares the same origin, otherwise false + */ + return function isURLSameOrigin(requestURL) { + const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL; + return (parsed.protocol === originURL.protocol && + parsed.host === originURL.host); + }; + })() : + + // Non standard browser envs (web workers, react-native) lack needed support. + (function nonStandardBrowserEnv() { + return function isURLSameOrigin() { + return true; + }; + })(); + +function progressEventReducer(listener, isDownloadStream) { + let bytesNotified = 0; + const _speedometer = speedometer(50, 250); + + return e => { + const loaded = e.loaded; + const total = e.lengthComputable ? e.total : undefined; + const progressBytes = loaded - bytesNotified; + const rate = _speedometer(progressBytes); + const inRange = loaded <= total; + + bytesNotified = loaded; + + const data = { + loaded, + total, + progress: total ? (loaded / total) : undefined, + bytes: progressBytes, + rate: rate ? rate : undefined, + estimated: rate && total && inRange ? (total - loaded) / rate : undefined, + event: e + }; + + data[isDownloadStream ? 'download' : 'upload'] = true; + + listener(data); + }; +} + +const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined'; + +const xhrAdapter = isXHRAdapterSupported && function (config) { + return new Promise(function dispatchXhrRequest(resolve, reject) { + let requestData = config.data; + const requestHeaders = AxiosHeaders$1.from(config.headers).normalize(); + const responseType = config.responseType; + let onCanceled; + function done() { + if (config.cancelToken) { + config.cancelToken.unsubscribe(onCanceled); + } + + if (config.signal) { + config.signal.removeEventListener('abort', onCanceled); + } + } + + if (utils.isFormData(requestData) && (platform.isStandardBrowserEnv || platform.isStandardBrowserWebWorkerEnv)) { + requestHeaders.setContentType(false); // Let the browser set it + } + + let request = new XMLHttpRequest(); + + // HTTP basic authentication + if (config.auth) { + const username = config.auth.username || ''; + const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : ''; + requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password)); + } + + const fullPath = buildFullPath(config.baseURL, config.url); + + request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); + + // Set the request timeout in MS + request.timeout = config.timeout; + + function onloadend() { + if (!request) { + return; + } + // Prepare the response + const responseHeaders = AxiosHeaders$1.from( + 'getAllResponseHeaders' in request && request.getAllResponseHeaders() + ); + const responseData = !responseType || responseType === 'text' || responseType === 'json' ? + request.responseText : request.response; + const response = { + data: responseData, + status: request.status, + statusText: request.statusText, + headers: responseHeaders, + config, + request + }; + + settle(function _resolve(value) { + resolve(value); + done(); + }, function _reject(err) { + reject(err); + done(); + }, response); + + // Clean up request + request = null; + } + + if ('onloadend' in request) { + // Use onloadend if available + request.onloadend = onloadend; + } else { + // Listen for ready state to emulate onloadend + request.onreadystatechange = function handleLoad() { + if (!request || request.readyState !== 4) { + return; + } + + // The request errored out and we didn't get a response, this will be + // handled by onerror instead + // With one exception: request that using file: protocol, most browsers + // will return status as 0 even though it's a successful request + if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) { + return; + } + // readystate handler is calling before onerror or ontimeout handlers, + // so we should call onloadend on the next 'tick' + setTimeout(onloadend); + }; + } + + // Handle browser request cancellation (as opposed to a manual cancellation) + request.onabort = function handleAbort() { + if (!request) { + return; + } + + reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request)); + + // Clean up request + request = null; + }; + + // Handle low level network errors + request.onerror = function handleError() { + // Real errors are hidden from us by the browser + // onerror should only fire if it's a network error + reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request)); + + // Clean up request + request = null; + }; + + // Handle timeout + request.ontimeout = function handleTimeout() { + let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded'; + const transitional = config.transitional || transitionalDefaults; + if (config.timeoutErrorMessage) { + timeoutErrorMessage = config.timeoutErrorMessage; + } + reject(new AxiosError( + timeoutErrorMessage, + transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED, + config, + request)); + + // Clean up request + request = null; + }; + + // Add xsrf header + // This is only done if running in a standard browser environment. + // Specifically not if we're in a web worker, or react-native. + if (platform.isStandardBrowserEnv) { + // Add xsrf header + const xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) + && config.xsrfCookieName && cookies.read(config.xsrfCookieName); + + if (xsrfValue) { + requestHeaders.set(config.xsrfHeaderName, xsrfValue); + } + } + + // Remove Content-Type if data is undefined + requestData === undefined && requestHeaders.setContentType(null); + + // Add headers to the request + if ('setRequestHeader' in request) { + utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) { + request.setRequestHeader(key, val); + }); + } + + // Add withCredentials to request if needed + if (!utils.isUndefined(config.withCredentials)) { + request.withCredentials = !!config.withCredentials; + } + + // Add responseType to request if needed + if (responseType && responseType !== 'json') { + request.responseType = config.responseType; + } + + // Handle progress if needed + if (typeof config.onDownloadProgress === 'function') { + request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true)); + } + + // Not all browsers support upload events + if (typeof config.onUploadProgress === 'function' && request.upload) { + request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress)); + } + + if (config.cancelToken || config.signal) { + // Handle cancellation + // eslint-disable-next-line func-names + onCanceled = cancel => { + if (!request) { + return; + } + reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel); + request.abort(); + request = null; + }; + + config.cancelToken && config.cancelToken.subscribe(onCanceled); + if (config.signal) { + config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled); + } + } + + const protocol = parseProtocol(fullPath); + + if (protocol && platform.protocols.indexOf(protocol) === -1) { + reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config)); + return; + } + + + // Send the request + request.send(requestData || null); + }); +}; + +const knownAdapters = { + http: httpAdapter, + xhr: xhrAdapter +}; + +utils.forEach(knownAdapters, (fn, value) => { + if(fn) { + try { + Object.defineProperty(fn, 'name', {value}); + } catch (e) { + // eslint-disable-next-line no-empty + } + Object.defineProperty(fn, 'adapterName', {value}); + } +}); + +const adapters = { + getAdapter: (adapters) => { + adapters = utils.isArray(adapters) ? adapters : [adapters]; + + const {length} = adapters; + let nameOrAdapter; + let adapter; + + for (let i = 0; i < length; i++) { + nameOrAdapter = adapters[i]; + if((adapter = utils.isString(nameOrAdapter) ? knownAdapters[nameOrAdapter.toLowerCase()] : nameOrAdapter)) { + break; + } + } + + if (!adapter) { + if (adapter === false) { + throw new AxiosError( + `Adapter ${nameOrAdapter} is not supported by the environment`, + 'ERR_NOT_SUPPORT' + ); + } + + throw new Error( + utils.hasOwnProp(knownAdapters, nameOrAdapter) ? + `Adapter '${nameOrAdapter}' is not available in the build` : + `Unknown adapter '${nameOrAdapter}'` + ); + } + + if (!utils.isFunction(adapter)) { + throw new TypeError('adapter is not a function'); + } + + return adapter; + }, + adapters: knownAdapters +}; + +/** + * Throws a `CanceledError` if cancellation has been requested. + * + * @param {Object} config The config that is to be used for the request + * + * @returns {void} + */ +function throwIfCancellationRequested(config) { + if (config.cancelToken) { + config.cancelToken.throwIfRequested(); + } + + if (config.signal && config.signal.aborted) { + throw new CanceledError(null, config); + } +} + +/** + * Dispatch a request to the server using the configured adapter. + * + * @param {object} config The config that is to be used for the request + * + * @returns {Promise} The Promise to be fulfilled + */ +function dispatchRequest(config) { + throwIfCancellationRequested(config); + + config.headers = AxiosHeaders$1.from(config.headers); + + // Transform request data + config.data = transformData.call( + config, + config.transformRequest + ); + + if (['post', 'put', 'patch'].indexOf(config.method) !== -1) { + config.headers.setContentType('application/x-www-form-urlencoded', false); + } + + const adapter = adapters.getAdapter(config.adapter || defaults$1.adapter); + + return adapter(config).then(function onAdapterResolution(response) { + throwIfCancellationRequested(config); + + // Transform response data + response.data = transformData.call( + config, + config.transformResponse, + response + ); + + response.headers = AxiosHeaders$1.from(response.headers); + + return response; + }, function onAdapterRejection(reason) { + if (!isCancel(reason)) { + throwIfCancellationRequested(config); + + // Transform response data + if (reason && reason.response) { + reason.response.data = transformData.call( + config, + config.transformResponse, + reason.response + ); + reason.response.headers = AxiosHeaders$1.from(reason.response.headers); + } + } + + return Promise.reject(reason); + }); +} + +const headersToObject = (thing) => thing instanceof AxiosHeaders$1 ? thing.toJSON() : thing; + +/** + * Config-specific merge-function which creates a new config-object + * by merging two configuration objects together. + * + * @param {Object} config1 + * @param {Object} config2 + * + * @returns {Object} New object resulting from merging config2 to config1 + */ +function mergeConfig(config1, config2) { + // eslint-disable-next-line no-param-reassign + config2 = config2 || {}; + const config = {}; + + function getMergedValue(target, source, caseless) { + if (utils.isPlainObject(target) && utils.isPlainObject(source)) { + return utils.merge.call({caseless}, target, source); + } else if (utils.isPlainObject(source)) { + return utils.merge({}, source); + } else if (utils.isArray(source)) { + return source.slice(); + } + return source; + } + + // eslint-disable-next-line consistent-return + function mergeDeepProperties(a, b, caseless) { + if (!utils.isUndefined(b)) { + return getMergedValue(a, b, caseless); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a, caseless); + } + } + + // eslint-disable-next-line consistent-return + function valueFromConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } + } + + // eslint-disable-next-line consistent-return + function defaultToConfig2(a, b) { + if (!utils.isUndefined(b)) { + return getMergedValue(undefined, b); + } else if (!utils.isUndefined(a)) { + return getMergedValue(undefined, a); + } + } + + // eslint-disable-next-line consistent-return + function mergeDirectKeys(a, b, prop) { + if (prop in config2) { + return getMergedValue(a, b); + } else if (prop in config1) { + return getMergedValue(undefined, a); + } + } + + const mergeMap = { + url: valueFromConfig2, + method: valueFromConfig2, + data: valueFromConfig2, + baseURL: defaultToConfig2, + transformRequest: defaultToConfig2, + transformResponse: defaultToConfig2, + paramsSerializer: defaultToConfig2, + timeout: defaultToConfig2, + timeoutMessage: defaultToConfig2, + withCredentials: defaultToConfig2, + adapter: defaultToConfig2, + responseType: defaultToConfig2, + xsrfCookieName: defaultToConfig2, + xsrfHeaderName: defaultToConfig2, + onUploadProgress: defaultToConfig2, + onDownloadProgress: defaultToConfig2, + decompress: defaultToConfig2, + maxContentLength: defaultToConfig2, + maxBodyLength: defaultToConfig2, + beforeRedirect: defaultToConfig2, + transport: defaultToConfig2, + httpAgent: defaultToConfig2, + httpsAgent: defaultToConfig2, + cancelToken: defaultToConfig2, + socketPath: defaultToConfig2, + responseEncoding: defaultToConfig2, + validateStatus: mergeDirectKeys, + headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true) + }; + + utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) { + const merge = mergeMap[prop] || mergeDeepProperties; + const configValue = merge(config1[prop], config2[prop], prop); + (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue); + }); + + return config; +} + +const validators$1 = {}; + +// eslint-disable-next-line func-names +['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => { + validators$1[type] = function validator(thing) { + return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type; + }; +}); + +const deprecatedWarnings = {}; + +/** + * Transitional option validator + * + * @param {function|boolean?} validator - set to false if the transitional option has been removed + * @param {string?} version - deprecated version / removed since version + * @param {string?} message - some message with additional info + * + * @returns {function} + */ +validators$1.transitional = function transitional(validator, version, message) { + function formatMessage(opt, desc) { + return '[Axios v' + VERSION + '] Transitional option \'' + opt + '\'' + desc + (message ? '. ' + message : ''); + } + + // eslint-disable-next-line func-names + return (value, opt, opts) => { + if (validator === false) { + throw new AxiosError( + formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')), + AxiosError.ERR_DEPRECATED + ); + } + + if (version && !deprecatedWarnings[opt]) { + deprecatedWarnings[opt] = true; + // eslint-disable-next-line no-console + console.warn( + formatMessage( + opt, + ' has been deprecated since v' + version + ' and will be removed in the near future' + ) + ); + } + + return validator ? validator(value, opt, opts) : true; + }; +}; + +/** + * Assert object's properties type + * + * @param {object} options + * @param {object} schema + * @param {boolean?} allowUnknown + * + * @returns {object} + */ + +function assertOptions(options, schema, allowUnknown) { + if (typeof options !== 'object') { + throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE); + } + const keys = Object.keys(options); + let i = keys.length; + while (i-- > 0) { + const opt = keys[i]; + const validator = schema[opt]; + if (validator) { + const value = options[opt]; + const result = value === undefined || validator(value, opt, options); + if (result !== true) { + throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE); + } + continue; + } + if (allowUnknown !== true) { + throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION); + } + } +} + +const validator = { + assertOptions, + validators: validators$1 +}; + +const validators = validator.validators; + +/** + * Create a new instance of Axios + * + * @param {Object} instanceConfig The default config for the instance + * + * @return {Axios} A new instance of Axios + */ +class Axios { + constructor(instanceConfig) { + this.defaults = instanceConfig; + this.interceptors = { + request: new InterceptorManager$1(), + response: new InterceptorManager$1() + }; + } + + /** + * Dispatch a request + * + * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults) + * @param {?Object} config + * + * @returns {Promise} The Promise to be fulfilled + */ + request(configOrUrl, config) { + /*eslint no-param-reassign:0*/ + // Allow for axios('example/url'[, config]) a la fetch API + if (typeof configOrUrl === 'string') { + config = config || {}; + config.url = configOrUrl; + } else { + config = configOrUrl || {}; + } + + config = mergeConfig(this.defaults, config); + + const {transitional, paramsSerializer, headers} = config; + + if (transitional !== undefined) { + validator.assertOptions(transitional, { + silentJSONParsing: validators.transitional(validators.boolean), + forcedJSONParsing: validators.transitional(validators.boolean), + clarifyTimeoutError: validators.transitional(validators.boolean) + }, false); + } + + if (paramsSerializer !== undefined) { + validator.assertOptions(paramsSerializer, { + encode: validators.function, + serialize: validators.function + }, true); + } + + // Set config.method + config.method = (config.method || this.defaults.method || 'get').toLowerCase(); + + let contextHeaders; + + // Flatten headers + contextHeaders = headers && utils.merge( + headers.common, + headers[config.method] + ); + + contextHeaders && utils.forEach( + ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], + (method) => { + delete headers[method]; + } + ); + + config.headers = AxiosHeaders$1.concat(contextHeaders, headers); + + // filter out skipped interceptors + const requestInterceptorChain = []; + let synchronousRequestInterceptors = true; + this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) { + if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) { + return; + } + + synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous; + + requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected); + }); + + const responseInterceptorChain = []; + this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) { + responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected); + }); + + let promise; + let i = 0; + let len; + + if (!synchronousRequestInterceptors) { + const chain = [dispatchRequest.bind(this), undefined]; + chain.unshift.apply(chain, requestInterceptorChain); + chain.push.apply(chain, responseInterceptorChain); + len = chain.length; + + promise = Promise.resolve(config); + + while (i < len) { + promise = promise.then(chain[i++], chain[i++]); + } + + return promise; + } + + len = requestInterceptorChain.length; + + let newConfig = config; + + i = 0; + + while (i < len) { + const onFulfilled = requestInterceptorChain[i++]; + const onRejected = requestInterceptorChain[i++]; + try { + newConfig = onFulfilled(newConfig); + } catch (error) { + onRejected.call(this, error); + break; + } + } + + try { + promise = dispatchRequest.call(this, newConfig); + } catch (error) { + return Promise.reject(error); + } + + i = 0; + len = responseInterceptorChain.length; + + while (i < len) { + promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]); + } + + return promise; + } + + getUri(config) { + config = mergeConfig(this.defaults, config); + const fullPath = buildFullPath(config.baseURL, config.url); + return buildURL(fullPath, config.params, config.paramsSerializer); + } +} + +// Provide aliases for supported request methods +utils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) { + /*eslint func-names:0*/ + Axios.prototype[method] = function(url, config) { + return this.request(mergeConfig(config || {}, { + method, + url, + data: (config || {}).data + })); + }; +}); + +utils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) { + /*eslint func-names:0*/ + + function generateHTTPMethod(isForm) { + return function httpMethod(url, data, config) { + return this.request(mergeConfig(config || {}, { + method, + headers: isForm ? { + 'Content-Type': 'multipart/form-data' + } : {}, + url, + data + })); + }; + } + + Axios.prototype[method] = generateHTTPMethod(); + + Axios.prototype[method + 'Form'] = generateHTTPMethod(true); +}); + +const Axios$1 = Axios; + +/** + * A `CancelToken` is an object that can be used to request cancellation of an operation. + * + * @param {Function} executor The executor function. + * + * @returns {CancelToken} + */ +class CancelToken { + constructor(executor) { + if (typeof executor !== 'function') { + throw new TypeError('executor must be a function.'); + } + + let resolvePromise; + + this.promise = new Promise(function promiseExecutor(resolve) { + resolvePromise = resolve; + }); + + const token = this; + + // eslint-disable-next-line func-names + this.promise.then(cancel => { + if (!token._listeners) return; + + let i = token._listeners.length; + + while (i-- > 0) { + token._listeners[i](cancel); + } + token._listeners = null; + }); + + // eslint-disable-next-line func-names + this.promise.then = onfulfilled => { + let _resolve; + // eslint-disable-next-line func-names + const promise = new Promise(resolve => { + token.subscribe(resolve); + _resolve = resolve; + }).then(onfulfilled); + + promise.cancel = function reject() { + token.unsubscribe(_resolve); + }; + + return promise; + }; + + executor(function cancel(message, config, request) { + if (token.reason) { + // Cancellation has already been requested + return; + } + + token.reason = new CanceledError(message, config, request); + resolvePromise(token.reason); + }); + } + + /** + * Throws a `CanceledError` if cancellation has been requested. + */ + throwIfRequested() { + if (this.reason) { + throw this.reason; + } + } + + /** + * Subscribe to the cancel signal + */ + + subscribe(listener) { + if (this.reason) { + listener(this.reason); + return; + } + + if (this._listeners) { + this._listeners.push(listener); + } else { + this._listeners = [listener]; + } + } + + /** + * Unsubscribe from the cancel signal + */ + + unsubscribe(listener) { + if (!this._listeners) { + return; + } + const index = this._listeners.indexOf(listener); + if (index !== -1) { + this._listeners.splice(index, 1); + } + } + + /** + * Returns an object that contains a new `CancelToken` and a function that, when called, + * cancels the `CancelToken`. + */ + static source() { + let cancel; + const token = new CancelToken(function executor(c) { + cancel = c; + }); + return { + token, + cancel + }; + } +} + +const CancelToken$1 = CancelToken; + +/** + * Syntactic sugar for invoking a function and expanding an array for arguments. + * + * Common use case would be to use `Function.prototype.apply`. + * + * ```js + * function f(x, y, z) {} + * var args = [1, 2, 3]; + * f.apply(null, args); + * ``` + * + * With `spread` this example can be re-written. + * + * ```js + * spread(function(x, y, z) {})([1, 2, 3]); + * ``` + * + * @param {Function} callback + * + * @returns {Function} + */ +function spread(callback) { + return function wrap(arr) { + return callback.apply(null, arr); + }; +} + +/** + * Determines whether the payload is an error thrown by Axios + * + * @param {*} payload The value to test + * + * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false + */ +function isAxiosError(payload) { + return utils.isObject(payload) && (payload.isAxiosError === true); +} + +const HttpStatusCode = { + Continue: 100, + SwitchingProtocols: 101, + Processing: 102, + EarlyHints: 103, + Ok: 200, + Created: 201, + Accepted: 202, + NonAuthoritativeInformation: 203, + NoContent: 204, + ResetContent: 205, + PartialContent: 206, + MultiStatus: 207, + AlreadyReported: 208, + ImUsed: 226, + MultipleChoices: 300, + MovedPermanently: 301, + Found: 302, + SeeOther: 303, + NotModified: 304, + UseProxy: 305, + Unused: 306, + TemporaryRedirect: 307, + PermanentRedirect: 308, + BadRequest: 400, + Unauthorized: 401, + PaymentRequired: 402, + Forbidden: 403, + NotFound: 404, + MethodNotAllowed: 405, + NotAcceptable: 406, + ProxyAuthenticationRequired: 407, + RequestTimeout: 408, + Conflict: 409, + Gone: 410, + LengthRequired: 411, + PreconditionFailed: 412, + PayloadTooLarge: 413, + UriTooLong: 414, + UnsupportedMediaType: 415, + RangeNotSatisfiable: 416, + ExpectationFailed: 417, + ImATeapot: 418, + MisdirectedRequest: 421, + UnprocessableEntity: 422, + Locked: 423, + FailedDependency: 424, + TooEarly: 425, + UpgradeRequired: 426, + PreconditionRequired: 428, + TooManyRequests: 429, + RequestHeaderFieldsTooLarge: 431, + UnavailableForLegalReasons: 451, + InternalServerError: 500, + NotImplemented: 501, + BadGateway: 502, + ServiceUnavailable: 503, + GatewayTimeout: 504, + HttpVersionNotSupported: 505, + VariantAlsoNegotiates: 506, + InsufficientStorage: 507, + LoopDetected: 508, + NotExtended: 510, + NetworkAuthenticationRequired: 511, +}; + +Object.entries(HttpStatusCode).forEach(([key, value]) => { + HttpStatusCode[value] = key; +}); + +const HttpStatusCode$1 = HttpStatusCode; + +/** + * Create an instance of Axios + * + * @param {Object} defaultConfig The default config for the instance + * + * @returns {Axios} A new instance of Axios + */ +function createInstance(defaultConfig) { + const context = new Axios$1(defaultConfig); + const instance = bind(Axios$1.prototype.request, context); + + // Copy axios.prototype to instance + utils.extend(instance, Axios$1.prototype, context, {allOwnKeys: true}); + + // Copy context to instance + utils.extend(instance, context, null, {allOwnKeys: true}); + + // Factory for creating new instances + instance.create = function create(instanceConfig) { + return createInstance(mergeConfig(defaultConfig, instanceConfig)); + }; + + return instance; +} + +// Create the default instance to be exported +const axios = createInstance(defaults$1); + +// Expose Axios class to allow class inheritance +axios.Axios = Axios$1; + +// Expose Cancel & CancelToken +axios.CanceledError = CanceledError; +axios.CancelToken = CancelToken$1; +axios.isCancel = isCancel; +axios.VERSION = VERSION; +axios.toFormData = toFormData; + +// Expose AxiosError class +axios.AxiosError = AxiosError; + +// alias for CanceledError for backward compatibility +axios.Cancel = axios.CanceledError; + +// Expose all/spread +axios.all = function all(promises) { + return Promise.all(promises); +}; + +axios.spread = spread; + +// Expose isAxiosError +axios.isAxiosError = isAxiosError; + +// Expose mergeConfig +axios.mergeConfig = mergeConfig; + +axios.AxiosHeaders = AxiosHeaders$1; + +axios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing); + +axios.HttpStatusCode = HttpStatusCode$1; + +axios.default = axios; + +module.exports = axios; +//# sourceMappingURL=axios.cjs.map + + +/***/ }), + +/***/ 27112: +/***/ ((__unused_webpack_module, exports) => { + +// Underscore.js 1.13.6 +// https://underscorejs.org +// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +Object.defineProperty(exports, "__esModule", ({ value: true })); + +// Current version. +var VERSION = '1.13.6'; + +// Establish the root object, `window` (`self`) in the browser, `global` +// on the server, or `this` in some virtual machines. We use `self` +// instead of `window` for `WebWorker` support. +var root = (typeof self == 'object' && self.self === self && self) || + (typeof global == 'object' && global.global === global && global) || + Function('return this')() || + {}; + +// Save bytes in the minified (but not gzipped) version: +var ArrayProto = Array.prototype, ObjProto = Object.prototype; +var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null; + +// Create quick reference variables for speed access to core prototypes. +var push = ArrayProto.push, + slice = ArrayProto.slice, + toString = ObjProto.toString, + hasOwnProperty = ObjProto.hasOwnProperty; + +// Modern feature detection. +var supportsArrayBuffer = typeof ArrayBuffer !== 'undefined', + supportsDataView = typeof DataView !== 'undefined'; + +// All **ECMAScript 5+** native function implementations that we hope to use +// are declared here. +var nativeIsArray = Array.isArray, + nativeKeys = Object.keys, + nativeCreate = Object.create, + nativeIsView = supportsArrayBuffer && ArrayBuffer.isView; + +// Create references to these builtin functions because we override them. +var _isNaN = isNaN, + _isFinite = isFinite; + +// Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed. +var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString'); +var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString', + 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; + +// The largest integer that can be represented exactly. +var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1; + +// Some functions take a variable number of arguments, or a few expected +// arguments at the beginning and then a variable number of values to operate +// on. This helper accumulates all remaining arguments past the function’s +// argument length (or an explicit `startIndex`), into an array that becomes +// the last argument. Similar to ES6’s "rest parameter". +function restArguments(func, startIndex) { + startIndex = startIndex == null ? func.length - 1 : +startIndex; + return function() { + var length = Math.max(arguments.length - startIndex, 0), + rest = Array(length), + index = 0; + for (; index < length; index++) { + rest[index] = arguments[index + startIndex]; + } + switch (startIndex) { + case 0: return func.call(this, rest); + case 1: return func.call(this, arguments[0], rest); + case 2: return func.call(this, arguments[0], arguments[1], rest); + } + var args = Array(startIndex + 1); + for (index = 0; index < startIndex; index++) { + args[index] = arguments[index]; + } + args[startIndex] = rest; + return func.apply(this, args); + }; +} + +// Is a given variable an object? +function isObject(obj) { + var type = typeof obj; + return type === 'function' || (type === 'object' && !!obj); +} + +// Is a given value equal to null? +function isNull(obj) { + return obj === null; +} + +// Is a given variable undefined? +function isUndefined(obj) { + return obj === void 0; +} + +// Is a given value a boolean? +function isBoolean(obj) { + return obj === true || obj === false || toString.call(obj) === '[object Boolean]'; +} + +// Is a given value a DOM element? +function isElement(obj) { + return !!(obj && obj.nodeType === 1); +} + +// Internal function for creating a `toString`-based type tester. +function tagTester(name) { + var tag = '[object ' + name + ']'; + return function(obj) { + return toString.call(obj) === tag; + }; +} + +var isString = tagTester('String'); + +var isNumber = tagTester('Number'); + +var isDate = tagTester('Date'); + +var isRegExp = tagTester('RegExp'); + +var isError = tagTester('Error'); + +var isSymbol = tagTester('Symbol'); + +var isArrayBuffer = tagTester('ArrayBuffer'); + +var isFunction = tagTester('Function'); + +// Optimize `isFunction` if appropriate. Work around some `typeof` bugs in old +// v8, IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236). +var nodelist = root.document && root.document.childNodes; +if ( true && typeof Int8Array != 'object' && typeof nodelist != 'function') { + isFunction = function(obj) { + return typeof obj == 'function' || false; + }; +} + +var isFunction$1 = isFunction; + +var hasObjectTag = tagTester('Object'); + +// In IE 10 - Edge 13, `DataView` has string tag `'[object Object]'`. +// In IE 11, the most common among them, this problem also applies to +// `Map`, `WeakMap` and `Set`. +var hasStringTagBug = ( + supportsDataView && hasObjectTag(new DataView(new ArrayBuffer(8))) + ), + isIE11 = (typeof Map !== 'undefined' && hasObjectTag(new Map)); + +var isDataView = tagTester('DataView'); + +// In IE 10 - Edge 13, we need a different heuristic +// to determine whether an object is a `DataView`. +function ie10IsDataView(obj) { + return obj != null && isFunction$1(obj.getInt8) && isArrayBuffer(obj.buffer); +} + +var isDataView$1 = (hasStringTagBug ? ie10IsDataView : isDataView); + +// Is a given value an array? +// Delegates to ECMA5's native `Array.isArray`. +var isArray = nativeIsArray || tagTester('Array'); + +// Internal function to check whether `key` is an own property name of `obj`. +function has$1(obj, key) { + return obj != null && hasOwnProperty.call(obj, key); +} + +var isArguments = tagTester('Arguments'); + +// Define a fallback version of the method in browsers (ahem, IE < 9), where +// there isn't any inspectable "Arguments" type. +(function() { + if (!isArguments(arguments)) { + isArguments = function(obj) { + return has$1(obj, 'callee'); + }; + } +}()); + +var isArguments$1 = isArguments; + +// Is a given object a finite number? +function isFinite$1(obj) { + return !isSymbol(obj) && _isFinite(obj) && !isNaN(parseFloat(obj)); +} + +// Is the given value `NaN`? +function isNaN$1(obj) { + return isNumber(obj) && _isNaN(obj); +} + +// Predicate-generating function. Often useful outside of Underscore. +function constant(value) { + return function() { + return value; + }; +} + +// Common internal logic for `isArrayLike` and `isBufferLike`. +function createSizePropertyCheck(getSizeProperty) { + return function(collection) { + var sizeProperty = getSizeProperty(collection); + return typeof sizeProperty == 'number' && sizeProperty >= 0 && sizeProperty <= MAX_ARRAY_INDEX; + } +} + +// Internal helper to generate a function to obtain property `key` from `obj`. +function shallowProperty(key) { + return function(obj) { + return obj == null ? void 0 : obj[key]; + }; +} + +// Internal helper to obtain the `byteLength` property of an object. +var getByteLength = shallowProperty('byteLength'); + +// Internal helper to determine whether we should spend extensive checks against +// `ArrayBuffer` et al. +var isBufferLike = createSizePropertyCheck(getByteLength); + +// Is a given value a typed array? +var typedArrayPattern = /\[object ((I|Ui)nt(8|16|32)|Float(32|64)|Uint8Clamped|Big(I|Ui)nt64)Array\]/; +function isTypedArray(obj) { + // `ArrayBuffer.isView` is the most future-proof, so use it when available. + // Otherwise, fall back on the above regular expression. + return nativeIsView ? (nativeIsView(obj) && !isDataView$1(obj)) : + isBufferLike(obj) && typedArrayPattern.test(toString.call(obj)); +} + +var isTypedArray$1 = supportsArrayBuffer ? isTypedArray : constant(false); + +// Internal helper to obtain the `length` property of an object. +var getLength = shallowProperty('length'); + +// Internal helper to create a simple lookup structure. +// `collectNonEnumProps` used to depend on `_.contains`, but this led to +// circular imports. `emulatedSet` is a one-off solution that only works for +// arrays of strings. +function emulatedSet(keys) { + var hash = {}; + for (var l = keys.length, i = 0; i < l; ++i) hash[keys[i]] = true; + return { + contains: function(key) { return hash[key] === true; }, + push: function(key) { + hash[key] = true; + return keys.push(key); + } + }; +} + +// Internal helper. Checks `keys` for the presence of keys in IE < 9 that won't +// be iterated by `for key in ...` and thus missed. Extends `keys` in place if +// needed. +function collectNonEnumProps(obj, keys) { + keys = emulatedSet(keys); + var nonEnumIdx = nonEnumerableProps.length; + var constructor = obj.constructor; + var proto = (isFunction$1(constructor) && constructor.prototype) || ObjProto; + + // Constructor is a special case. + var prop = 'constructor'; + if (has$1(obj, prop) && !keys.contains(prop)) keys.push(prop); + + while (nonEnumIdx--) { + prop = nonEnumerableProps[nonEnumIdx]; + if (prop in obj && obj[prop] !== proto[prop] && !keys.contains(prop)) { + keys.push(prop); + } + } +} + +// Retrieve the names of an object's own properties. +// Delegates to **ECMAScript 5**'s native `Object.keys`. +function keys(obj) { + if (!isObject(obj)) return []; + if (nativeKeys) return nativeKeys(obj); + var keys = []; + for (var key in obj) if (has$1(obj, key)) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; +} + +// Is a given array, string, or object empty? +// An "empty" object has no enumerable own-properties. +function isEmpty(obj) { + if (obj == null) return true; + // Skip the more expensive `toString`-based type checks if `obj` has no + // `.length`. + var length = getLength(obj); + if (typeof length == 'number' && ( + isArray(obj) || isString(obj) || isArguments$1(obj) + )) return length === 0; + return getLength(keys(obj)) === 0; +} + +// Returns whether an object has a given set of `key:value` pairs. +function isMatch(object, attrs) { + var _keys = keys(attrs), length = _keys.length; + if (object == null) return !length; + var obj = Object(object); + for (var i = 0; i < length; i++) { + var key = _keys[i]; + if (attrs[key] !== obj[key] || !(key in obj)) return false; + } + return true; +} + +// If Underscore is called as a function, it returns a wrapped object that can +// be used OO-style. This wrapper holds altered versions of all functions added +// through `_.mixin`. Wrapped objects may be chained. +function _$1(obj) { + if (obj instanceof _$1) return obj; + if (!(this instanceof _$1)) return new _$1(obj); + this._wrapped = obj; +} + +_$1.VERSION = VERSION; + +// Extracts the result from a wrapped and chained object. +_$1.prototype.value = function() { + return this._wrapped; +}; + +// Provide unwrapping proxies for some methods used in engine operations +// such as arithmetic and JSON stringification. +_$1.prototype.valueOf = _$1.prototype.toJSON = _$1.prototype.value; + +_$1.prototype.toString = function() { + return String(this._wrapped); +}; + +// Internal function to wrap or shallow-copy an ArrayBuffer, +// typed array or DataView to a new view, reusing the buffer. +function toBufferView(bufferSource) { + return new Uint8Array( + bufferSource.buffer || bufferSource, + bufferSource.byteOffset || 0, + getByteLength(bufferSource) + ); +} + +// We use this string twice, so give it a name for minification. +var tagDataView = '[object DataView]'; + +// Internal recursive comparison function for `_.isEqual`. +function eq(a, b, aStack, bStack) { + // Identical objects are equal. `0 === -0`, but they aren't identical. + // See the [Harmony `egal` proposal](https://wiki.ecmascript.org/doku.php?id=harmony:egal). + if (a === b) return a !== 0 || 1 / a === 1 / b; + // `null` or `undefined` only equal to itself (strict comparison). + if (a == null || b == null) return false; + // `NaN`s are equivalent, but non-reflexive. + if (a !== a) return b !== b; + // Exhaust primitive checks + var type = typeof a; + if (type !== 'function' && type !== 'object' && typeof b != 'object') return false; + return deepEq(a, b, aStack, bStack); +} + +// Internal recursive comparison function for `_.isEqual`. +function deepEq(a, b, aStack, bStack) { + // Unwrap any wrapped objects. + if (a instanceof _$1) a = a._wrapped; + if (b instanceof _$1) b = b._wrapped; + // Compare `[[Class]]` names. + var className = toString.call(a); + if (className !== toString.call(b)) return false; + // Work around a bug in IE 10 - Edge 13. + if (hasStringTagBug && className == '[object Object]' && isDataView$1(a)) { + if (!isDataView$1(b)) return false; + className = tagDataView; + } + switch (className) { + // These types are compared by value. + case '[object RegExp]': + // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i') + case '[object String]': + // Primitives and their corresponding object wrappers are equivalent; thus, `"5"` is + // equivalent to `new String("5")`. + return '' + a === '' + b; + case '[object Number]': + // `NaN`s are equivalent, but non-reflexive. + // Object(NaN) is equivalent to NaN. + if (+a !== +a) return +b !== +b; + // An `egal` comparison is performed for other numeric values. + return +a === 0 ? 1 / +a === 1 / b : +a === +b; + case '[object Date]': + case '[object Boolean]': + // Coerce dates and booleans to numeric primitive values. Dates are compared by their + // millisecond representations. Note that invalid dates with millisecond representations + // of `NaN` are not equivalent. + return +a === +b; + case '[object Symbol]': + return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b); + case '[object ArrayBuffer]': + case tagDataView: + // Coerce to typed array so we can fall through. + return deepEq(toBufferView(a), toBufferView(b), aStack, bStack); + } + + var areArrays = className === '[object Array]'; + if (!areArrays && isTypedArray$1(a)) { + var byteLength = getByteLength(a); + if (byteLength !== getByteLength(b)) return false; + if (a.buffer === b.buffer && a.byteOffset === b.byteOffset) return true; + areArrays = true; + } + if (!areArrays) { + if (typeof a != 'object' || typeof b != 'object') return false; + + // Objects with different constructors are not equivalent, but `Object`s or `Array`s + // from different frames are. + var aCtor = a.constructor, bCtor = b.constructor; + if (aCtor !== bCtor && !(isFunction$1(aCtor) && aCtor instanceof aCtor && + isFunction$1(bCtor) && bCtor instanceof bCtor) + && ('constructor' in a && 'constructor' in b)) { + return false; + } + } + // Assume equality for cyclic structures. The algorithm for detecting cyclic + // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`. + + // Initializing stack of traversed objects. + // It's done here since we only need them for objects and arrays comparison. + aStack = aStack || []; + bStack = bStack || []; + var length = aStack.length; + while (length--) { + // Linear search. Performance is inversely proportional to the number of + // unique nested structures. + if (aStack[length] === a) return bStack[length] === b; + } + + // Add the first object to the stack of traversed objects. + aStack.push(a); + bStack.push(b); + + // Recursively compare objects and arrays. + if (areArrays) { + // Compare array lengths to determine if a deep comparison is necessary. + length = a.length; + if (length !== b.length) return false; + // Deep compare the contents, ignoring non-numeric properties. + while (length--) { + if (!eq(a[length], b[length], aStack, bStack)) return false; + } + } else { + // Deep compare objects. + var _keys = keys(a), key; + length = _keys.length; + // Ensure that both objects contain the same number of properties before comparing deep equality. + if (keys(b).length !== length) return false; + while (length--) { + // Deep compare each member + key = _keys[length]; + if (!(has$1(b, key) && eq(a[key], b[key], aStack, bStack))) return false; + } + } + // Remove the first object from the stack of traversed objects. + aStack.pop(); + bStack.pop(); + return true; +} + +// Perform a deep comparison to check if two objects are equal. +function isEqual(a, b) { + return eq(a, b); +} + +// Retrieve all the enumerable property names of an object. +function allKeys(obj) { + if (!isObject(obj)) return []; + var keys = []; + for (var key in obj) keys.push(key); + // Ahem, IE < 9. + if (hasEnumBug) collectNonEnumProps(obj, keys); + return keys; +} + +// Since the regular `Object.prototype.toString` type tests don't work for +// some types in IE 11, we use a fingerprinting heuristic instead, based +// on the methods. It's not great, but it's the best we got. +// The fingerprint method lists are defined below. +function ie11fingerprint(methods) { + var length = getLength(methods); + return function(obj) { + if (obj == null) return false; + // `Map`, `WeakMap` and `Set` have no enumerable keys. + var keys = allKeys(obj); + if (getLength(keys)) return false; + for (var i = 0; i < length; i++) { + if (!isFunction$1(obj[methods[i]])) return false; + } + // If we are testing against `WeakMap`, we need to ensure that + // `obj` doesn't have a `forEach` method in order to distinguish + // it from a regular `Map`. + return methods !== weakMapMethods || !isFunction$1(obj[forEachName]); + }; +} + +// In the interest of compact minification, we write +// each string in the fingerprints only once. +var forEachName = 'forEach', + hasName = 'has', + commonInit = ['clear', 'delete'], + mapTail = ['get', hasName, 'set']; + +// `Map`, `WeakMap` and `Set` each have slightly different +// combinations of the above sublists. +var mapMethods = commonInit.concat(forEachName, mapTail), + weakMapMethods = commonInit.concat(mapTail), + setMethods = ['add'].concat(commonInit, forEachName, hasName); + +var isMap = isIE11 ? ie11fingerprint(mapMethods) : tagTester('Map'); + +var isWeakMap = isIE11 ? ie11fingerprint(weakMapMethods) : tagTester('WeakMap'); + +var isSet = isIE11 ? ie11fingerprint(setMethods) : tagTester('Set'); + +var isWeakSet = tagTester('WeakSet'); + +// Retrieve the values of an object's properties. +function values(obj) { + var _keys = keys(obj); + var length = _keys.length; + var values = Array(length); + for (var i = 0; i < length; i++) { + values[i] = obj[_keys[i]]; + } + return values; +} + +// Convert an object into a list of `[key, value]` pairs. +// The opposite of `_.object` with one argument. +function pairs(obj) { + var _keys = keys(obj); + var length = _keys.length; + var pairs = Array(length); + for (var i = 0; i < length; i++) { + pairs[i] = [_keys[i], obj[_keys[i]]]; + } + return pairs; +} + +// Invert the keys and values of an object. The values must be serializable. +function invert(obj) { + var result = {}; + var _keys = keys(obj); + for (var i = 0, length = _keys.length; i < length; i++) { + result[obj[_keys[i]]] = _keys[i]; + } + return result; +} + +// Return a sorted list of the function names available on the object. +function functions(obj) { + var names = []; + for (var key in obj) { + if (isFunction$1(obj[key])) names.push(key); + } + return names.sort(); +} + +// An internal function for creating assigner functions. +function createAssigner(keysFunc, defaults) { + return function(obj) { + var length = arguments.length; + if (defaults) obj = Object(obj); + if (length < 2 || obj == null) return obj; + for (var index = 1; index < length; index++) { + var source = arguments[index], + keys = keysFunc(source), + l = keys.length; + for (var i = 0; i < l; i++) { + var key = keys[i]; + if (!defaults || obj[key] === void 0) obj[key] = source[key]; + } + } + return obj; + }; +} + +// Extend a given object with all the properties in passed-in object(s). +var extend = createAssigner(allKeys); + +// Assigns a given object with all the own properties in the passed-in +// object(s). +// (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign) +var extendOwn = createAssigner(keys); + +// Fill in a given object with default properties. +var defaults = createAssigner(allKeys, true); + +// Create a naked function reference for surrogate-prototype-swapping. +function ctor() { + return function(){}; +} + +// An internal function for creating a new object that inherits from another. +function baseCreate(prototype) { + if (!isObject(prototype)) return {}; + if (nativeCreate) return nativeCreate(prototype); + var Ctor = ctor(); + Ctor.prototype = prototype; + var result = new Ctor; + Ctor.prototype = null; + return result; +} + +// Creates an object that inherits from the given prototype object. +// If additional properties are provided then they will be added to the +// created object. +function create(prototype, props) { + var result = baseCreate(prototype); + if (props) extendOwn(result, props); + return result; +} + +// Create a (shallow-cloned) duplicate of an object. +function clone(obj) { + if (!isObject(obj)) return obj; + return isArray(obj) ? obj.slice() : extend({}, obj); +} + +// Invokes `interceptor` with the `obj` and then returns `obj`. +// The primary purpose of this method is to "tap into" a method chain, in +// order to perform operations on intermediate results within the chain. +function tap(obj, interceptor) { + interceptor(obj); + return obj; +} + +// Normalize a (deep) property `path` to array. +// Like `_.iteratee`, this function can be customized. +function toPath$1(path) { + return isArray(path) ? path : [path]; +} +_$1.toPath = toPath$1; + +// Internal wrapper for `_.toPath` to enable minification. +// Similar to `cb` for `_.iteratee`. +function toPath(path) { + return _$1.toPath(path); +} + +// Internal function to obtain a nested property in `obj` along `path`. +function deepGet(obj, path) { + var length = path.length; + for (var i = 0; i < length; i++) { + if (obj == null) return void 0; + obj = obj[path[i]]; + } + return length ? obj : void 0; +} + +// Get the value of the (deep) property on `path` from `object`. +// If any property in `path` does not exist or if the value is +// `undefined`, return `defaultValue` instead. +// The `path` is normalized through `_.toPath`. +function get(object, path, defaultValue) { + var value = deepGet(object, toPath(path)); + return isUndefined(value) ? defaultValue : value; +} + +// Shortcut function for checking if an object has a given property directly on +// itself (in other words, not on a prototype). Unlike the internal `has` +// function, this public version can also traverse nested properties. +function has(obj, path) { + path = toPath(path); + var length = path.length; + for (var i = 0; i < length; i++) { + var key = path[i]; + if (!has$1(obj, key)) return false; + obj = obj[key]; + } + return !!length; +} + +// Keep the identity function around for default iteratees. +function identity(value) { + return value; +} + +// Returns a predicate for checking whether an object has a given set of +// `key:value` pairs. +function matcher(attrs) { + attrs = extendOwn({}, attrs); + return function(obj) { + return isMatch(obj, attrs); + }; +} + +// Creates a function that, when passed an object, will traverse that object’s +// properties down the given `path`, specified as an array of keys or indices. +function property(path) { + path = toPath(path); + return function(obj) { + return deepGet(obj, path); + }; +} + +// Internal function that returns an efficient (for current engines) version +// of the passed-in callback, to be repeatedly applied in other Underscore +// functions. +function optimizeCb(func, context, argCount) { + if (context === void 0) return func; + switch (argCount == null ? 3 : argCount) { + case 1: return function(value) { + return func.call(context, value); + }; + // The 2-argument case is omitted because we’re not using it. + case 3: return function(value, index, collection) { + return func.call(context, value, index, collection); + }; + case 4: return function(accumulator, value, index, collection) { + return func.call(context, accumulator, value, index, collection); + }; + } + return function() { + return func.apply(context, arguments); + }; +} + +// An internal function to generate callbacks that can be applied to each +// element in a collection, returning the desired result — either `_.identity`, +// an arbitrary callback, a property matcher, or a property accessor. +function baseIteratee(value, context, argCount) { + if (value == null) return identity; + if (isFunction$1(value)) return optimizeCb(value, context, argCount); + if (isObject(value) && !isArray(value)) return matcher(value); + return property(value); +} + +// External wrapper for our callback generator. Users may customize +// `_.iteratee` if they want additional predicate/iteratee shorthand styles. +// This abstraction hides the internal-only `argCount` argument. +function iteratee(value, context) { + return baseIteratee(value, context, Infinity); +} +_$1.iteratee = iteratee; + +// The function we call internally to generate a callback. It invokes +// `_.iteratee` if overridden, otherwise `baseIteratee`. +function cb(value, context, argCount) { + if (_$1.iteratee !== iteratee) return _$1.iteratee(value, context); + return baseIteratee(value, context, argCount); +} + +// Returns the results of applying the `iteratee` to each element of `obj`. +// In contrast to `_.map` it returns an object. +function mapObject(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = keys(obj), + length = _keys.length, + results = {}; + for (var index = 0; index < length; index++) { + var currentKey = _keys[index]; + results[currentKey] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} + +// Predicate-generating function. Often useful outside of Underscore. +function noop(){} + +// Generates a function for a given object that returns a given property. +function propertyOf(obj) { + if (obj == null) return noop; + return function(path) { + return get(obj, path); + }; +} + +// Run a function **n** times. +function times(n, iteratee, context) { + var accum = Array(Math.max(0, n)); + iteratee = optimizeCb(iteratee, context, 1); + for (var i = 0; i < n; i++) accum[i] = iteratee(i); + return accum; +} + +// Return a random integer between `min` and `max` (inclusive). +function random(min, max) { + if (max == null) { + max = min; + min = 0; + } + return min + Math.floor(Math.random() * (max - min + 1)); +} + +// A (possibly faster) way to get the current timestamp as an integer. +var now = Date.now || function() { + return new Date().getTime(); +}; + +// Internal helper to generate functions for escaping and unescaping strings +// to/from HTML interpolation. +function createEscaper(map) { + var escaper = function(match) { + return map[match]; + }; + // Regexes for identifying a key that needs to be escaped. + var source = '(?:' + keys(map).join('|') + ')'; + var testRegexp = RegExp(source); + var replaceRegexp = RegExp(source, 'g'); + return function(string) { + string = string == null ? '' : '' + string; + return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string; + }; +} + +// Internal list of HTML entities for escaping. +var escapeMap = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''', + '`': '`' +}; + +// Function for escaping strings to HTML interpolation. +var _escape = createEscaper(escapeMap); + +// Internal list of HTML entities for unescaping. +var unescapeMap = invert(escapeMap); + +// Function for unescaping strings from HTML interpolation. +var _unescape = createEscaper(unescapeMap); + +// By default, Underscore uses ERB-style template delimiters. Change the +// following template settings to use alternative delimiters. +var templateSettings = _$1.templateSettings = { + evaluate: /<%([\s\S]+?)%>/g, + interpolate: /<%=([\s\S]+?)%>/g, + escape: /<%-([\s\S]+?)%>/g +}; + +// When customizing `_.templateSettings`, if you don't want to define an +// interpolation, evaluation or escaping regex, we need one that is +// guaranteed not to match. +var noMatch = /(.)^/; + +// Certain characters need to be escaped so that they can be put into a +// string literal. +var escapes = { + "'": "'", + '\\': '\\', + '\r': 'r', + '\n': 'n', + '\u2028': 'u2028', + '\u2029': 'u2029' +}; + +var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; + +function escapeChar(match) { + return '\\' + escapes[match]; +} + +// In order to prevent third-party code injection through +// `_.templateSettings.variable`, we test it against the following regular +// expression. It is intentionally a bit more liberal than just matching valid +// identifiers, but still prevents possible loopholes through defaults or +// destructuring assignment. +var bareIdentifier = /^\s*(\w|\$)+\s*$/; + +// JavaScript micro-templating, similar to John Resig's implementation. +// Underscore templating handles arbitrary delimiters, preserves whitespace, +// and correctly escapes quotes within interpolated code. +// NB: `oldSettings` only exists for backwards compatibility. +function template(text, settings, oldSettings) { + if (!settings && oldSettings) settings = oldSettings; + settings = defaults({}, settings, _$1.templateSettings); + + // Combine delimiters into one regular expression via alternation. + var matcher = RegExp([ + (settings.escape || noMatch).source, + (settings.interpolate || noMatch).source, + (settings.evaluate || noMatch).source + ].join('|') + '|$', 'g'); + + // Compile the template source, escaping string literals appropriately. + var index = 0; + var source = "__p+='"; + text.replace(matcher, function(match, escape, interpolate, evaluate, offset) { + source += text.slice(index, offset).replace(escapeRegExp, escapeChar); + index = offset + match.length; + + if (escape) { + source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; + } else if (interpolate) { + source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; + } else if (evaluate) { + source += "';\n" + evaluate + "\n__p+='"; + } + + // Adobe VMs need the match returned to produce the correct offset. + return match; + }); + source += "';\n"; + + var argument = settings.variable; + if (argument) { + // Insure against third-party code injection. (CVE-2021-23358) + if (!bareIdentifier.test(argument)) throw new Error( + 'variable is not a bare identifier: ' + argument + ); + } else { + // If a variable is not specified, place data values in local scope. + source = 'with(obj||{}){\n' + source + '}\n'; + argument = 'obj'; + } + + source = "var __t,__p='',__j=Array.prototype.join," + + "print=function(){__p+=__j.call(arguments,'');};\n" + + source + 'return __p;\n'; + + var render; + try { + render = new Function(argument, '_', source); + } catch (e) { + e.source = source; + throw e; + } + + var template = function(data) { + return render.call(this, data, _$1); + }; + + // Provide the compiled source as a convenience for precompilation. + template.source = 'function(' + argument + '){\n' + source + '}'; + + return template; +} + +// Traverses the children of `obj` along `path`. If a child is a function, it +// is invoked with its parent as context. Returns the value of the final +// child, or `fallback` if any child is undefined. +function result(obj, path, fallback) { + path = toPath(path); + var length = path.length; + if (!length) { + return isFunction$1(fallback) ? fallback.call(obj) : fallback; + } + for (var i = 0; i < length; i++) { + var prop = obj == null ? void 0 : obj[path[i]]; + if (prop === void 0) { + prop = fallback; + i = length; // Ensure we don't continue iterating. + } + obj = isFunction$1(prop) ? prop.call(obj) : prop; + } + return obj; +} + +// Generate a unique integer id (unique within the entire client session). +// Useful for temporary DOM ids. +var idCounter = 0; +function uniqueId(prefix) { + var id = ++idCounter + ''; + return prefix ? prefix + id : id; +} + +// Start chaining a wrapped Underscore object. +function chain(obj) { + var instance = _$1(obj); + instance._chain = true; + return instance; +} + +// Internal function to execute `sourceFunc` bound to `context` with optional +// `args`. Determines whether to execute a function as a constructor or as a +// normal function. +function executeBound(sourceFunc, boundFunc, context, callingContext, args) { + if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args); + var self = baseCreate(sourceFunc.prototype); + var result = sourceFunc.apply(self, args); + if (isObject(result)) return result; + return self; +} + +// Partially apply a function by creating a version that has had some of its +// arguments pre-filled, without changing its dynamic `this` context. `_` acts +// as a placeholder by default, allowing any combination of arguments to be +// pre-filled. Set `_.partial.placeholder` for a custom placeholder argument. +var partial = restArguments(function(func, boundArgs) { + var placeholder = partial.placeholder; + var bound = function() { + var position = 0, length = boundArgs.length; + var args = Array(length); + for (var i = 0; i < length; i++) { + args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i]; + } + while (position < arguments.length) args.push(arguments[position++]); + return executeBound(func, bound, this, this, args); + }; + return bound; +}); + +partial.placeholder = _$1; + +// Create a function bound to a given object (assigning `this`, and arguments, +// optionally). +var bind = restArguments(function(func, context, args) { + if (!isFunction$1(func)) throw new TypeError('Bind must be called on a function'); + var bound = restArguments(function(callArgs) { + return executeBound(func, bound, context, this, args.concat(callArgs)); + }); + return bound; +}); + +// Internal helper for collection methods to determine whether a collection +// should be iterated as an array or as an object. +// Related: https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength +// Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094 +var isArrayLike = createSizePropertyCheck(getLength); + +// Internal implementation of a recursive `flatten` function. +function flatten$1(input, depth, strict, output) { + output = output || []; + if (!depth && depth !== 0) { + depth = Infinity; + } else if (depth <= 0) { + return output.concat(input); + } + var idx = output.length; + for (var i = 0, length = getLength(input); i < length; i++) { + var value = input[i]; + if (isArrayLike(value) && (isArray(value) || isArguments$1(value))) { + // Flatten current level of array or arguments object. + if (depth > 1) { + flatten$1(value, depth - 1, strict, output); + idx = output.length; + } else { + var j = 0, len = value.length; + while (j < len) output[idx++] = value[j++]; + } + } else if (!strict) { + output[idx++] = value; + } + } + return output; +} + +// Bind a number of an object's methods to that object. Remaining arguments +// are the method names to be bound. Useful for ensuring that all callbacks +// defined on an object belong to it. +var bindAll = restArguments(function(obj, keys) { + keys = flatten$1(keys, false, false); + var index = keys.length; + if (index < 1) throw new Error('bindAll must be passed function names'); + while (index--) { + var key = keys[index]; + obj[key] = bind(obj[key], obj); + } + return obj; +}); + +// Memoize an expensive function by storing its results. +function memoize(func, hasher) { + var memoize = function(key) { + var cache = memoize.cache; + var address = '' + (hasher ? hasher.apply(this, arguments) : key); + if (!has$1(cache, address)) cache[address] = func.apply(this, arguments); + return cache[address]; + }; + memoize.cache = {}; + return memoize; +} + +// Delays a function for the given number of milliseconds, and then calls +// it with the arguments supplied. +var delay = restArguments(function(func, wait, args) { + return setTimeout(function() { + return func.apply(null, args); + }, wait); +}); + +// Defers a function, scheduling it to run after the current call stack has +// cleared. +var defer = partial(delay, _$1, 1); + +// Returns a function, that, when invoked, will only be triggered at most once +// during a given window of time. Normally, the throttled function will run +// as much as it can, without ever going more than once per `wait` duration; +// but if you'd like to disable the execution on the leading edge, pass +// `{leading: false}`. To disable execution on the trailing edge, ditto. +function throttle(func, wait, options) { + var timeout, context, args, result; + var previous = 0; + if (!options) options = {}; + + var later = function() { + previous = options.leading === false ? 0 : now(); + timeout = null; + result = func.apply(context, args); + if (!timeout) context = args = null; + }; + + var throttled = function() { + var _now = now(); + if (!previous && options.leading === false) previous = _now; + var remaining = wait - (_now - previous); + context = this; + args = arguments; + if (remaining <= 0 || remaining > wait) { + if (timeout) { + clearTimeout(timeout); + timeout = null; + } + previous = _now; + result = func.apply(context, args); + if (!timeout) context = args = null; + } else if (!timeout && options.trailing !== false) { + timeout = setTimeout(later, remaining); + } + return result; + }; + + throttled.cancel = function() { + clearTimeout(timeout); + previous = 0; + timeout = context = args = null; + }; + + return throttled; +} + +// When a sequence of calls of the returned function ends, the argument +// function is triggered. The end of a sequence is defined by the `wait` +// parameter. If `immediate` is passed, the argument function will be +// triggered at the beginning of the sequence instead of at the end. +function debounce(func, wait, immediate) { + var timeout, previous, args, result, context; + + var later = function() { + var passed = now() - previous; + if (wait > passed) { + timeout = setTimeout(later, wait - passed); + } else { + timeout = null; + if (!immediate) result = func.apply(context, args); + // This check is needed because `func` can recursively invoke `debounced`. + if (!timeout) args = context = null; + } + }; + + var debounced = restArguments(function(_args) { + context = this; + args = _args; + previous = now(); + if (!timeout) { + timeout = setTimeout(later, wait); + if (immediate) result = func.apply(context, args); + } + return result; + }); + + debounced.cancel = function() { + clearTimeout(timeout); + timeout = args = context = null; + }; + + return debounced; +} + +// Returns the first function passed as an argument to the second, +// allowing you to adjust arguments, run code before and after, and +// conditionally execute the original function. +function wrap(func, wrapper) { + return partial(wrapper, func); +} + +// Returns a negated version of the passed-in predicate. +function negate(predicate) { + return function() { + return !predicate.apply(this, arguments); + }; +} + +// Returns a function that is the composition of a list of functions, each +// consuming the return value of the function that follows. +function compose() { + var args = arguments; + var start = args.length - 1; + return function() { + var i = start; + var result = args[start].apply(this, arguments); + while (i--) result = args[i].call(this, result); + return result; + }; +} + +// Returns a function that will only be executed on and after the Nth call. +function after(times, func) { + return function() { + if (--times < 1) { + return func.apply(this, arguments); + } + }; +} + +// Returns a function that will only be executed up to (but not including) the +// Nth call. +function before(times, func) { + var memo; + return function() { + if (--times > 0) { + memo = func.apply(this, arguments); + } + if (times <= 1) func = null; + return memo; + }; +} + +// Returns a function that will be executed at most one time, no matter how +// often you call it. Useful for lazy initialization. +var once = partial(before, 2); + +// Returns the first key on an object that passes a truth test. +function findKey(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = keys(obj), key; + for (var i = 0, length = _keys.length; i < length; i++) { + key = _keys[i]; + if (predicate(obj[key], key, obj)) return key; + } +} + +// Internal function to generate `_.findIndex` and `_.findLastIndex`. +function createPredicateIndexFinder(dir) { + return function(array, predicate, context) { + predicate = cb(predicate, context); + var length = getLength(array); + var index = dir > 0 ? 0 : length - 1; + for (; index >= 0 && index < length; index += dir) { + if (predicate(array[index], index, array)) return index; + } + return -1; + }; +} + +// Returns the first index on an array-like that passes a truth test. +var findIndex = createPredicateIndexFinder(1); + +// Returns the last index on an array-like that passes a truth test. +var findLastIndex = createPredicateIndexFinder(-1); + +// Use a comparator function to figure out the smallest index at which +// an object should be inserted so as to maintain order. Uses binary search. +function sortedIndex(array, obj, iteratee, context) { + iteratee = cb(iteratee, context, 1); + var value = iteratee(obj); + var low = 0, high = getLength(array); + while (low < high) { + var mid = Math.floor((low + high) / 2); + if (iteratee(array[mid]) < value) low = mid + 1; else high = mid; + } + return low; +} + +// Internal function to generate the `_.indexOf` and `_.lastIndexOf` functions. +function createIndexFinder(dir, predicateFind, sortedIndex) { + return function(array, item, idx) { + var i = 0, length = getLength(array); + if (typeof idx == 'number') { + if (dir > 0) { + i = idx >= 0 ? idx : Math.max(idx + length, i); + } else { + length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1; + } + } else if (sortedIndex && idx && length) { + idx = sortedIndex(array, item); + return array[idx] === item ? idx : -1; + } + if (item !== item) { + idx = predicateFind(slice.call(array, i, length), isNaN$1); + return idx >= 0 ? idx + i : -1; + } + for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) { + if (array[idx] === item) return idx; + } + return -1; + }; +} + +// Return the position of the first occurrence of an item in an array, +// or -1 if the item is not included in the array. +// If the array is large and already in sort order, pass `true` +// for **isSorted** to use binary search. +var indexOf = createIndexFinder(1, findIndex, sortedIndex); + +// Return the position of the last occurrence of an item in an array, +// or -1 if the item is not included in the array. +var lastIndexOf = createIndexFinder(-1, findLastIndex); + +// Return the first value which passes a truth test. +function find(obj, predicate, context) { + var keyFinder = isArrayLike(obj) ? findIndex : findKey; + var key = keyFinder(obj, predicate, context); + if (key !== void 0 && key !== -1) return obj[key]; +} + +// Convenience version of a common use case of `_.find`: getting the first +// object containing specific `key:value` pairs. +function findWhere(obj, attrs) { + return find(obj, matcher(attrs)); +} + +// The cornerstone for collection functions, an `each` +// implementation, aka `forEach`. +// Handles raw objects in addition to array-likes. Treats all +// sparse array-likes as if they were dense. +function each(obj, iteratee, context) { + iteratee = optimizeCb(iteratee, context); + var i, length; + if (isArrayLike(obj)) { + for (i = 0, length = obj.length; i < length; i++) { + iteratee(obj[i], i, obj); + } + } else { + var _keys = keys(obj); + for (i = 0, length = _keys.length; i < length; i++) { + iteratee(obj[_keys[i]], _keys[i], obj); + } + } + return obj; +} + +// Return the results of applying the iteratee to each element. +function map(obj, iteratee, context) { + iteratee = cb(iteratee, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + results = Array(length); + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + results[index] = iteratee(obj[currentKey], currentKey, obj); + } + return results; +} + +// Internal helper to create a reducing function, iterating left or right. +function createReduce(dir) { + // Wrap code that reassigns argument variables in a separate function than + // the one that accesses `arguments.length` to avoid a perf hit. (#1991) + var reducer = function(obj, iteratee, memo, initial) { + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length, + index = dir > 0 ? 0 : length - 1; + if (!initial) { + memo = obj[_keys ? _keys[index] : index]; + index += dir; + } + for (; index >= 0 && index < length; index += dir) { + var currentKey = _keys ? _keys[index] : index; + memo = iteratee(memo, obj[currentKey], currentKey, obj); + } + return memo; + }; + + return function(obj, iteratee, memo, context) { + var initial = arguments.length >= 3; + return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial); + }; +} + +// **Reduce** builds up a single result from a list of values, aka `inject`, +// or `foldl`. +var reduce = createReduce(1); + +// The right-associative version of reduce, also known as `foldr`. +var reduceRight = createReduce(-1); + +// Return all the elements that pass a truth test. +function filter(obj, predicate, context) { + var results = []; + predicate = cb(predicate, context); + each(obj, function(value, index, list) { + if (predicate(value, index, list)) results.push(value); + }); + return results; +} + +// Return all the elements for which a truth test fails. +function reject(obj, predicate, context) { + return filter(obj, negate(cb(predicate)), context); +} + +// Determine whether all of the elements pass a truth test. +function every(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (!predicate(obj[currentKey], currentKey, obj)) return false; + } + return true; +} + +// Determine if at least one element in the object passes a truth test. +function some(obj, predicate, context) { + predicate = cb(predicate, context); + var _keys = !isArrayLike(obj) && keys(obj), + length = (_keys || obj).length; + for (var index = 0; index < length; index++) { + var currentKey = _keys ? _keys[index] : index; + if (predicate(obj[currentKey], currentKey, obj)) return true; + } + return false; +} + +// Determine if the array or object contains a given item (using `===`). +function contains(obj, item, fromIndex, guard) { + if (!isArrayLike(obj)) obj = values(obj); + if (typeof fromIndex != 'number' || guard) fromIndex = 0; + return indexOf(obj, item, fromIndex) >= 0; +} + +// Invoke a method (with arguments) on every item in a collection. +var invoke = restArguments(function(obj, path, args) { + var contextPath, func; + if (isFunction$1(path)) { + func = path; + } else { + path = toPath(path); + contextPath = path.slice(0, -1); + path = path[path.length - 1]; + } + return map(obj, function(context) { + var method = func; + if (!method) { + if (contextPath && contextPath.length) { + context = deepGet(context, contextPath); + } + if (context == null) return void 0; + method = context[path]; + } + return method == null ? method : method.apply(context, args); + }); +}); + +// Convenience version of a common use case of `_.map`: fetching a property. +function pluck(obj, key) { + return map(obj, property(key)); +} + +// Convenience version of a common use case of `_.filter`: selecting only +// objects containing specific `key:value` pairs. +function where(obj, attrs) { + return filter(obj, matcher(attrs)); +} + +// Return the maximum element (or element-based computation). +function max(obj, iteratee, context) { + var result = -Infinity, lastComputed = -Infinity, + value, computed; + if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value > result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed > lastComputed || (computed === -Infinity && result === -Infinity)) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} + +// Return the minimum element (or element-based computation). +function min(obj, iteratee, context) { + var result = Infinity, lastComputed = Infinity, + value, computed; + if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { + obj = isArrayLike(obj) ? obj : values(obj); + for (var i = 0, length = obj.length; i < length; i++) { + value = obj[i]; + if (value != null && value < result) { + result = value; + } + } + } else { + iteratee = cb(iteratee, context); + each(obj, function(v, index, list) { + computed = iteratee(v, index, list); + if (computed < lastComputed || (computed === Infinity && result === Infinity)) { + result = v; + lastComputed = computed; + } + }); + } + return result; +} + +// Safely create a real, live array from anything iterable. +var reStrSymbol = /[^\ud800-\udfff]|[\ud800-\udbff][\udc00-\udfff]|[\ud800-\udfff]/g; +function toArray(obj) { + if (!obj) return []; + if (isArray(obj)) return slice.call(obj); + if (isString(obj)) { + // Keep surrogate pair characters together. + return obj.match(reStrSymbol); + } + if (isArrayLike(obj)) return map(obj, identity); + return values(obj); +} + +// Sample **n** random values from a collection using the modern version of the +// [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher–Yates_shuffle). +// If **n** is not specified, returns a single random element. +// The internal `guard` argument allows it to work with `_.map`. +function sample(obj, n, guard) { + if (n == null || guard) { + if (!isArrayLike(obj)) obj = values(obj); + return obj[random(obj.length - 1)]; + } + var sample = toArray(obj); + var length = getLength(sample); + n = Math.max(Math.min(n, length), 0); + var last = length - 1; + for (var index = 0; index < n; index++) { + var rand = random(index, last); + var temp = sample[index]; + sample[index] = sample[rand]; + sample[rand] = temp; + } + return sample.slice(0, n); +} + +// Shuffle a collection. +function shuffle(obj) { + return sample(obj, Infinity); +} + +// Sort the object's values by a criterion produced by an iteratee. +function sortBy(obj, iteratee, context) { + var index = 0; + iteratee = cb(iteratee, context); + return pluck(map(obj, function(value, key, list) { + return { + value: value, + index: index++, + criteria: iteratee(value, key, list) + }; + }).sort(function(left, right) { + var a = left.criteria; + var b = right.criteria; + if (a !== b) { + if (a > b || a === void 0) return 1; + if (a < b || b === void 0) return -1; + } + return left.index - right.index; + }), 'value'); +} + +// An internal function used for aggregate "group by" operations. +function group(behavior, partition) { + return function(obj, iteratee, context) { + var result = partition ? [[], []] : {}; + iteratee = cb(iteratee, context); + each(obj, function(value, index) { + var key = iteratee(value, index, obj); + behavior(result, value, key); + }); + return result; + }; +} + +// Groups the object's values by a criterion. Pass either a string attribute +// to group by, or a function that returns the criterion. +var groupBy = group(function(result, value, key) { + if (has$1(result, key)) result[key].push(value); else result[key] = [value]; +}); + +// Indexes the object's values by a criterion, similar to `_.groupBy`, but for +// when you know that your index values will be unique. +var indexBy = group(function(result, value, key) { + result[key] = value; +}); + +// Counts instances of an object that group by a certain criterion. Pass +// either a string attribute to count by, or a function that returns the +// criterion. +var countBy = group(function(result, value, key) { + if (has$1(result, key)) result[key]++; else result[key] = 1; +}); + +// Split a collection into two arrays: one whose elements all pass the given +// truth test, and one whose elements all do not pass the truth test. +var partition = group(function(result, value, pass) { + result[pass ? 0 : 1].push(value); +}, true); + +// Return the number of elements in a collection. +function size(obj) { + if (obj == null) return 0; + return isArrayLike(obj) ? obj.length : keys(obj).length; +} + +// Internal `_.pick` helper function to determine whether `key` is an enumerable +// property name of `obj`. +function keyInObj(value, key, obj) { + return key in obj; +} + +// Return a copy of the object only containing the allowed properties. +var pick = restArguments(function(obj, keys) { + var result = {}, iteratee = keys[0]; + if (obj == null) return result; + if (isFunction$1(iteratee)) { + if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]); + keys = allKeys(obj); + } else { + iteratee = keyInObj; + keys = flatten$1(keys, false, false); + obj = Object(obj); + } + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i]; + var value = obj[key]; + if (iteratee(value, key, obj)) result[key] = value; + } + return result; +}); + +// Return a copy of the object without the disallowed properties. +var omit = restArguments(function(obj, keys) { + var iteratee = keys[0], context; + if (isFunction$1(iteratee)) { + iteratee = negate(iteratee); + if (keys.length > 1) context = keys[1]; + } else { + keys = map(flatten$1(keys, false, false), String); + iteratee = function(value, key) { + return !contains(keys, key); + }; + } + return pick(obj, iteratee, context); +}); + +// Returns everything but the last entry of the array. Especially useful on +// the arguments object. Passing **n** will return all the values in +// the array, excluding the last N. +function initial(array, n, guard) { + return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n))); +} + +// Get the first element of an array. Passing **n** will return the first N +// values in the array. The **guard** check allows it to work with `_.map`. +function first(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[0]; + return initial(array, array.length - n); +} + +// Returns everything but the first entry of the `array`. Especially useful on +// the `arguments` object. Passing an **n** will return the rest N values in the +// `array`. +function rest(array, n, guard) { + return slice.call(array, n == null || guard ? 1 : n); +} + +// Get the last element of an array. Passing **n** will return the last N +// values in the array. +function last(array, n, guard) { + if (array == null || array.length < 1) return n == null || guard ? void 0 : []; + if (n == null || guard) return array[array.length - 1]; + return rest(array, Math.max(0, array.length - n)); +} + +// Trim out all falsy values from an array. +function compact(array) { + return filter(array, Boolean); +} + +// Flatten out an array, either recursively (by default), or up to `depth`. +// Passing `true` or `false` as `depth` means `1` or `Infinity`, respectively. +function flatten(array, depth) { + return flatten$1(array, depth, false); +} + +// Take the difference between one array and a number of other arrays. +// Only the elements present in just the first array will remain. +var difference = restArguments(function(array, rest) { + rest = flatten$1(rest, true, true); + return filter(array, function(value){ + return !contains(rest, value); + }); +}); + +// Return a version of the array that does not contain the specified value(s). +var without = restArguments(function(array, otherArrays) { + return difference(array, otherArrays); +}); + +// Produce a duplicate-free version of the array. If the array has already +// been sorted, you have the option of using a faster algorithm. +// The faster algorithm will not work with an iteratee if the iteratee +// is not a one-to-one function, so providing an iteratee will disable +// the faster algorithm. +function uniq(array, isSorted, iteratee, context) { + if (!isBoolean(isSorted)) { + context = iteratee; + iteratee = isSorted; + isSorted = false; + } + if (iteratee != null) iteratee = cb(iteratee, context); + var result = []; + var seen = []; + for (var i = 0, length = getLength(array); i < length; i++) { + var value = array[i], + computed = iteratee ? iteratee(value, i, array) : value; + if (isSorted && !iteratee) { + if (!i || seen !== computed) result.push(value); + seen = computed; + } else if (iteratee) { + if (!contains(seen, computed)) { + seen.push(computed); + result.push(value); + } + } else if (!contains(result, value)) { + result.push(value); + } + } + return result; +} + +// Produce an array that contains the union: each distinct element from all of +// the passed-in arrays. +var union = restArguments(function(arrays) { + return uniq(flatten$1(arrays, true, true)); +}); + +// Produce an array that contains every item shared between all the +// passed-in arrays. +function intersection(array) { + var result = []; + var argsLength = arguments.length; + for (var i = 0, length = getLength(array); i < length; i++) { + var item = array[i]; + if (contains(result, item)) continue; + var j; + for (j = 1; j < argsLength; j++) { + if (!contains(arguments[j], item)) break; + } + if (j === argsLength) result.push(item); + } + return result; +} + +// Complement of zip. Unzip accepts an array of arrays and groups +// each array's elements on shared indices. +function unzip(array) { + var length = (array && max(array, getLength).length) || 0; + var result = Array(length); + + for (var index = 0; index < length; index++) { + result[index] = pluck(array, index); + } + return result; +} + +// Zip together multiple lists into a single array -- elements that share +// an index go together. +var zip = restArguments(unzip); + +// Converts lists into objects. Pass either a single array of `[key, value]` +// pairs, or two parallel arrays of the same length -- one of keys, and one of +// the corresponding values. Passing by pairs is the reverse of `_.pairs`. +function object(list, values) { + var result = {}; + for (var i = 0, length = getLength(list); i < length; i++) { + if (values) { + result[list[i]] = values[i]; + } else { + result[list[i][0]] = list[i][1]; + } + } + return result; +} + +// Generate an integer Array containing an arithmetic progression. A port of +// the native Python `range()` function. See +// [the Python documentation](https://docs.python.org/library/functions.html#range). +function range(start, stop, step) { + if (stop == null) { + stop = start || 0; + start = 0; + } + if (!step) { + step = stop < start ? -1 : 1; + } + + var length = Math.max(Math.ceil((stop - start) / step), 0); + var range = Array(length); + + for (var idx = 0; idx < length; idx++, start += step) { + range[idx] = start; + } + + return range; +} + +// Chunk a single array into multiple arrays, each containing `count` or fewer +// items. +function chunk(array, count) { + if (count == null || count < 1) return []; + var result = []; + var i = 0, length = array.length; + while (i < length) { + result.push(slice.call(array, i, i += count)); + } + return result; +} + +// Helper function to continue chaining intermediate results. +function chainResult(instance, obj) { + return instance._chain ? _$1(obj).chain() : obj; +} + +// Add your own custom functions to the Underscore object. +function mixin(obj) { + each(functions(obj), function(name) { + var func = _$1[name] = obj[name]; + _$1.prototype[name] = function() { + var args = [this._wrapped]; + push.apply(args, arguments); + return chainResult(this, func.apply(_$1, args)); + }; + }); + return _$1; +} + +// Add all mutator `Array` functions to the wrapper. +each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) { + method.apply(obj, arguments); + if ((name === 'shift' || name === 'splice') && obj.length === 0) { + delete obj[0]; + } + } + return chainResult(this, obj); + }; +}); + +// Add all accessor `Array` functions to the wrapper. +each(['concat', 'join', 'slice'], function(name) { + var method = ArrayProto[name]; + _$1.prototype[name] = function() { + var obj = this._wrapped; + if (obj != null) obj = method.apply(obj, arguments); + return chainResult(this, obj); + }; +}); + +// Named Exports + +var allExports = { + __proto__: null, + VERSION: VERSION, + restArguments: restArguments, + isObject: isObject, + isNull: isNull, + isUndefined: isUndefined, + isBoolean: isBoolean, + isElement: isElement, + isString: isString, + isNumber: isNumber, + isDate: isDate, + isRegExp: isRegExp, + isError: isError, + isSymbol: isSymbol, + isArrayBuffer: isArrayBuffer, + isDataView: isDataView$1, + isArray: isArray, + isFunction: isFunction$1, + isArguments: isArguments$1, + isFinite: isFinite$1, + isNaN: isNaN$1, + isTypedArray: isTypedArray$1, + isEmpty: isEmpty, + isMatch: isMatch, + isEqual: isEqual, + isMap: isMap, + isWeakMap: isWeakMap, + isSet: isSet, + isWeakSet: isWeakSet, + keys: keys, + allKeys: allKeys, + values: values, + pairs: pairs, + invert: invert, + functions: functions, + methods: functions, + extend: extend, + extendOwn: extendOwn, + assign: extendOwn, + defaults: defaults, + create: create, + clone: clone, + tap: tap, + get: get, + has: has, + mapObject: mapObject, + identity: identity, + constant: constant, + noop: noop, + toPath: toPath$1, + property: property, + propertyOf: propertyOf, + matcher: matcher, + matches: matcher, + times: times, + random: random, + now: now, + escape: _escape, + unescape: _unescape, + templateSettings: templateSettings, + template: template, + result: result, + uniqueId: uniqueId, + chain: chain, + iteratee: iteratee, + partial: partial, + bind: bind, + bindAll: bindAll, + memoize: memoize, + delay: delay, + defer: defer, + throttle: throttle, + debounce: debounce, + wrap: wrap, + negate: negate, + compose: compose, + after: after, + before: before, + once: once, + findKey: findKey, + findIndex: findIndex, + findLastIndex: findLastIndex, + sortedIndex: sortedIndex, + indexOf: indexOf, + lastIndexOf: lastIndexOf, + find: find, + detect: find, + findWhere: findWhere, + each: each, + forEach: each, + map: map, + collect: map, + reduce: reduce, + foldl: reduce, + inject: reduce, + reduceRight: reduceRight, + foldr: reduceRight, + filter: filter, + select: filter, + reject: reject, + every: every, + all: every, + some: some, + any: some, + contains: contains, + includes: contains, + include: contains, + invoke: invoke, + pluck: pluck, + where: where, + max: max, + min: min, + shuffle: shuffle, + sample: sample, + sortBy: sortBy, + groupBy: groupBy, + indexBy: indexBy, + countBy: countBy, + partition: partition, + toArray: toArray, + size: size, + pick: pick, + omit: omit, + first: first, + head: first, + take: first, + initial: initial, + last: last, + rest: rest, + tail: rest, + drop: rest, + compact: compact, + flatten: flatten, + without: without, + uniq: uniq, + unique: uniq, + union: union, + intersection: intersection, + difference: difference, + unzip: unzip, + transpose: unzip, + zip: zip, + object: object, + range: range, + chunk: chunk, + mixin: mixin, + 'default': _$1 +}; + +// Default Export + +// Add all of the Underscore functions to the wrapper object. +var _ = mixin(allExports); +// Legacy Node.js API. +_._ = _; + +exports.VERSION = VERSION; +exports._ = _; +exports._escape = _escape; +exports._unescape = _unescape; +exports.after = after; +exports.allKeys = allKeys; +exports.before = before; +exports.bind = bind; +exports.bindAll = bindAll; +exports.chain = chain; +exports.chunk = chunk; +exports.clone = clone; +exports.compact = compact; +exports.compose = compose; +exports.constant = constant; +exports.contains = contains; +exports.countBy = countBy; +exports.create = create; +exports.debounce = debounce; +exports.defaults = defaults; +exports.defer = defer; +exports.delay = delay; +exports.difference = difference; +exports.each = each; +exports.every = every; +exports.extend = extend; +exports.extendOwn = extendOwn; +exports.filter = filter; +exports.find = find; +exports.findIndex = findIndex; +exports.findKey = findKey; +exports.findLastIndex = findLastIndex; +exports.findWhere = findWhere; +exports.first = first; +exports.flatten = flatten; +exports.functions = functions; +exports.get = get; +exports.groupBy = groupBy; +exports.has = has; +exports.identity = identity; +exports.indexBy = indexBy; +exports.indexOf = indexOf; +exports.initial = initial; +exports.intersection = intersection; +exports.invert = invert; +exports.invoke = invoke; +exports.isArguments = isArguments$1; +exports.isArray = isArray; +exports.isArrayBuffer = isArrayBuffer; +exports.isBoolean = isBoolean; +exports.isDataView = isDataView$1; +exports.isDate = isDate; +exports.isElement = isElement; +exports.isEmpty = isEmpty; +exports.isEqual = isEqual; +exports.isError = isError; +exports.isFinite = isFinite$1; +exports.isFunction = isFunction$1; +exports.isMap = isMap; +exports.isMatch = isMatch; +exports.isNaN = isNaN$1; +exports.isNull = isNull; +exports.isNumber = isNumber; +exports.isObject = isObject; +exports.isRegExp = isRegExp; +exports.isSet = isSet; +exports.isString = isString; +exports.isSymbol = isSymbol; +exports.isTypedArray = isTypedArray$1; +exports.isUndefined = isUndefined; +exports.isWeakMap = isWeakMap; +exports.isWeakSet = isWeakSet; +exports.iteratee = iteratee; +exports.keys = keys; +exports.last = last; +exports.lastIndexOf = lastIndexOf; +exports.map = map; +exports.mapObject = mapObject; +exports.matcher = matcher; +exports.max = max; +exports.memoize = memoize; +exports.min = min; +exports.mixin = mixin; +exports.negate = negate; +exports.noop = noop; +exports.now = now; +exports.object = object; +exports.omit = omit; +exports.once = once; +exports.pairs = pairs; +exports.partial = partial; +exports.partition = partition; +exports.pick = pick; +exports.pluck = pluck; +exports.property = property; +exports.propertyOf = propertyOf; +exports.random = random; +exports.range = range; +exports.reduce = reduce; +exports.reduceRight = reduceRight; +exports.reject = reject; +exports.rest = rest; +exports.restArguments = restArguments; +exports.result = result; +exports.sample = sample; +exports.shuffle = shuffle; +exports.size = size; +exports.some = some; +exports.sortBy = sortBy; +exports.sortedIndex = sortedIndex; +exports.tap = tap; +exports.template = template; +exports.templateSettings = templateSettings; +exports.throttle = throttle; +exports.times = times; +exports.toArray = toArray; +exports.toPath = toPath$1; +exports.union = union; +exports.uniq = uniq; +exports.uniqueId = uniqueId; +exports.unzip = unzip; +exports.values = values; +exports.where = where; +exports.without = without; +exports.wrap = wrap; +exports.zip = zip; +//# sourceMappingURL=underscore-node-f.cjs.map + + +/***/ }), + +/***/ 36206: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +// Underscore.js 1.13.6 +// https://underscorejs.org +// (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors +// Underscore may be freely distributed under the MIT license. + +var underscoreNodeF = __nccwpck_require__(27112); + + + +module.exports = underscoreNodeF._; +//# sourceMappingURL=underscore-node.cjs.map + + +/***/ }), + +/***/ 50126: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"cats":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"words":{"0":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"1":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"2":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"3":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"4":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1},"5":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"shell":1},"6":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1},"7":{"c++":1,"c":1,"css":1,"objective-c":1},"8":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"9":{"c++":1,"css":1,"objective-c":1,"shell":1},"10":{"c++":1,"c":1,"css":1,"javascript":1,"objective-c":1,"python":1},"11":{"c++":1,"objective-c":1},"12":{"c++":1,"css":1,"objective-c":1},"13":{"c++":1,"objective-c":1,"shell":1},"14":{"c++":1,"objective-c":1},"15":{"c++":1,"c":1,"css":1},"16":{"c++":1,"html":1,"objective-c":1,"python":1},"17":{"c++":1,"css":1,"objective-c":1,"shell":1},"18":{"c++":1},"19":{"c++":1,"objective-c":1},"20":{"c++":1,"css":1,"html":1},"21":{"c++":1,"css":1,"objective-c":1},"22":{"c++":1,"shell":1},"23":{"c++":1,"objective-c":1},"24":{"c++":1,"c":1},"25":{"c++":1,"css":1,"objective-c":1},"26":{"c++":1},"27":{"c++":1},"28":{"c++":1},"29":{"c++":1,"objective-c":1},"30":{"c++":1,"html":1,"shell":1},"31":{"c++":1,"css":1,"objective-c":1},"32":{"c++":1,"c":1,"css":1,"objective-c":1,"python":1},"33":{"c++":1,"html":1,"objective-c":1,"shell":1},"34":{"c++":1,"html":1},"35":{"c++":1,"css":1},"36":{"c++":1},"37":{"c++":1},"38":{"c++":1},"39":{"c++":1},"40":{"c++":1,"css":1,"html":1},"41":{"c++":1},"42":{"c++":1},"43":{"c++":1},"44":{"c++":1},"45":{"c++":1,"css":1},"46":{"c++":1},"47":{"c++":1,"html":1},"48":{"c++":1},"49":{"c++":1,"html":1},"50":{"c++":1,"css":1},"51":{"c++":1,"css":1},"52":{"c++":1,"c":1},"53":{"c++":1,"shell":1},"54":{"c++":1},"55":{"c++":1,"css":1,"shell":1},"56":{"c++":1},"57":{"c++":1},"58":{"c++":1},"59":{"c++":1},"60":{"c++":1,"c":1,"html":1},"61":{"c++":1},"62":{"c++":1,"html":1},"63":{"c++":1},"64":{"c++":1,"objective-c":1},"65":{"css":1},"70":{"css":1},"75":{"css":1},"80":{"c++":1,"css":1,"shell":1},"81":{"css":1},"86":{"css":1},"90":{"css":1,"objective-c":1},"95":{"css":1,"html":1},"96":{"css":1},"97":{"css":1},"98":{"css":1},"99":{"css":1},"100":{"css":1,"html":1,"javascript":1},"108":{"css":1},"110":{"css":1},"111":{"css":1},"114":{"html":1},"120":{"css":1},"131":{"css":1},"140":{"css":1,"html":1},"144":{"html":1},"145":{"html":1},"147":{"css":1},"150":{"shell":1},"160":{"css":1},"161":{"css":1},"163":{"css":1},"167":{"css":1},"168":{"html":1},"183":{"html":1},"193":{"css":1},"196":{"css":1},"200":{"css":1},"202":{"javascript":1},"203":{"css":1},"204":{"javascript":1},"221":{"css":1},"222":{"css":1},"223":{"html":1},"232":{"css":1},"240":{"css":1},"255":{"css":1,"objective-c":1},"256":{"objective-c":1},"273":{"html":1},"300":{"css":1,"python":1},"303":{"python":1},"312":{"html":1},"321":{"html":1},"333":{"css":1},"369":{"html":1},"382":{"html":1},"400":{"javascript":1,"python":1},"401":{"javascript":1},"403":{"javascript":1},"404":{"javascript":1},"406":{"javascript":1},"420":{"html":1},"440":{"css":1},"444":{"css":1},"464":{"html":1},"500":{"c":1,"css":1,"python":1},"550":{"objective-c":1},"555":{"css":1},"579":{"html":1},"600":{"python":1},"666":{"css":1},"777":{"css":1},"822":{"c++":1},"888":{"css":1},"900":{"css":1},"999":{"css":1},"1000":{"c":1},"1024":{"objective-c":1,"python":1},"1120":{"shell":1},"1223":{"javascript":1},"1301":{"html":1},"1808":{"python":1},"2001":{"objective-c":1},"2004":{"objective-c":1},"2008":{"ruby":1},"2009":{"c++":1},"2010":{"c++":1},"2011":{"objective-c":1},"2012":{"c":1,"html":1,"shell":1},"2045":{"c++":1},"2261":{"objective-c":1},"2500":{"c":1},"3128":{"python":1},"3464":{"c++":1},"4627":{"python":1},"5000":{"c":1},"9999":{"css":1},"37595":{"html":1},"60000":{"c":1},"84931":{"html":1},"99999":{"css":1},"100000":{"css":1},"105095":{"css":1},"111111":{"css":1},"141414":{"css":1},"275666":{"css":1},"333333":{"css":1},"337797":{"css":1},"339900":{"css":1},"339933":{"css":1},"393939":{"css":1},"416334":{"css":1},"434648":{"css":1},"444444":{"css":1},"445588":{"css":1},"454545":{"css":1},"494620":{"css":1},"494949":{"css":1},"509338":{"css":1},"545454":{"css":1},"555555":{"css":1},"585858":{"css":1},"595959":{"css":1},"596063":{"css":1},"606020":{"css":1},"636363":{"css":1},"637781":{"css":1},"666042":{"css":1},"666666":{"css":1},"686868":{"css":1},"707070":{"css":1},"737373":{"css":1},"767676":{"css":1},"787878":{"css":1},"800080":{"css":1},"811201":{"css":1},"859900":{"css":1},"888888":{"css":1},"909090":{"css":1},"939393":{"css":1},"984646":{"css":1},"990000":{"css":1},"990073":{"css":1},"993333":{"css":1},"999988":{"css":1},"999999":{"css":1},"1000000":{"c":1},"3600000":{"c":1},"5000000":{"c":1},"14550850":{"html":1},"51654763":{"css":1},"60000000":{"c":1},"86400000":{"c":1},"604800000":{"c":1},"1338956357":{"html":1},"3600000000":{"c":1},"":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"Copyright":{"c++":1,"c":1,"objective-c":1,"ruby":1,"shell":1},"Joyent":{"c++":1},"Inc":{"c++":1,"html":1,"objective-c":1},"and":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"other":{"c++":1,"css":1,"html":1,"objective-c":1,"python":1,"ruby":1},"Node":{"c++":1,"html":1},"contributors":{"c++":1,"css":1,"objective-c":1},"Permission":{"c++":1,"shell":1},"is":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"hereby":{"c++":1,"objective-c":1,"shell":1},"granted":{"c++":1,"shell":1},"free":{"c++":1,"c":1,"objective-c":1,"shell":1},"of":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"charge":{"c++":1,"shell":1},"to":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"any":{"c++":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"person":{"c++":1,"css":1,"shell":1},"obtaining":{"c++":1,"shell":1},"a":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"copy":{"c++":1,"html":1,"objective-c":1,"shell":1},"this":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"software":{"c++":1,"objective-c":1,"shell":1},"associated":{"c++":1,"objective-c":1,"shell":1},"documentation":{"c++":1,"objective-c":1,"ruby":1,"shell":1},"files":{"c++":1,"css":1,"objective-c":1,"python":1,"shell":1},"the":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"Software":{"c++":1,"shell":1},"deal":{"c++":1,"shell":1},"in":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"without":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"restriction":{"c++":1,"shell":1},"including":{"c++":1,"shell":1},"limitation":{"c++":1,"shell":1},"rights":{"c++":1,"html":1,"objective-c":1,"shell":1},"use":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"modify":{"c++":1,"shell":1},"merge":{"c++":1,"css":1,"javascript":1,"shell":1},"publish":{"c++":1,"shell":1},"distribute":{"c++":1,"objective-c":1,"shell":1},"sublicense":{"c++":1,"shell":1},"or":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"sell":{"c++":1,"shell":1},"copies":{"c++":1,"objective-c":1,"shell":1},"permit":{"c++":1,"shell":1},"persons":{"c++":1,"shell":1},"whom":{"c++":1,"shell":1},"furnished":{"c++":1,"shell":1},"do":{"c++":1,"c":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"so":{"c++":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"subject":{"c++":1,"shell":1},"following":{"c++":1,"css":1,"objective-c":1,"shell":1},"conditions":{"c++":1,"objective-c":1,"shell":1},"The":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"above":{"c++":1,"objective-c":1,"shell":1},"copyright":{"c++":1,"objective-c":1,"shell":1},"notice":{"c++":1,"css":1,"objective-c":1,"shell":1},"permission":{"c++":1,"objective-c":1,"shell":1},"shall":{"c++":1,"shell":1},"be":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"included":{"c++":1,"objective-c":1,"shell":1},"all":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"substantial":{"c++":1,"shell":1},"portions":{"c++":1,"shell":1},"THE":{"c++":1,"objective-c":1,"shell":1},"SOFTWARE":{"c++":1,"objective-c":1,"shell":1},"IS":{"c++":1,"objective-c":1,"shell":1},"PROVIDED":{"c++":1,"objective-c":1,"shell":1},"AS":{"c++":1,"objective-c":1,"shell":1},"WITHOUT":{"c++":1,"objective-c":1,"shell":1},"WARRANTY":{"c++":1,"shell":1},"OF":{"c++":1,"objective-c":1,"shell":1},"ANY":{"c++":1,"objective-c":1,"shell":1},"KIND":{"c++":1,"objective-c":1,"shell":1},"EXPRESS":{"c++":1,"objective-c":1,"shell":1},"OR":{"c++":1,"objective-c":1,"shell":1},"IMPLIED":{"c++":1,"objective-c":1,"shell":1},"INCLUDING":{"c++":1,"objective-c":1,"shell":1},"BUT":{"c++":1,"objective-c":1,"shell":1},"NOT":{"c++":1,"objective-c":1,"shell":1},"LIMITED":{"c++":1,"objective-c":1,"shell":1},"TO":{"c++":1,"objective-c":1,"shell":1},"WARRANTIES":{"c++":1,"objective-c":1,"shell":1},"MERCHANTABILITY":{"c++":1,"objective-c":1,"shell":1},"FITNESS":{"c++":1,"objective-c":1,"shell":1},"FOR":{"c++":1,"objective-c":1,"shell":1},"A":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"PARTICULAR":{"c++":1,"objective-c":1,"shell":1},"PURPOSE":{"c++":1,"objective-c":1,"shell":1},"AND":{"c++":1,"objective-c":1,"shell":1},"NONINFRINGEMENT":{"c++":1,"shell":1},"IN":{"c++":1,"objective-c":1,"shell":1},"NO":{"c++":1,"objective-c":1,"shell":1},"EVENT":{"c++":1,"objective-c":1,"shell":1},"SHALL":{"c++":1,"objective-c":1,"shell":1},"AUTHORS":{"c++":1,"shell":1},"COPYRIGHT":{"c++":1,"objective-c":1,"shell":1},"HOLDERS":{"c++":1,"objective-c":1,"shell":1},"BE":{"c++":1,"objective-c":1,"shell":1},"LIABLE":{"c++":1,"objective-c":1,"shell":1},"CLAIM":{"c++":1,"shell":1},"DAMAGES":{"c++":1,"objective-c":1,"shell":1},"OTHER":{"c++":1,"shell":1},"LIABILITY":{"c++":1,"objective-c":1,"shell":1},"WHETHER":{"c++":1,"objective-c":1,"shell":1},"AN":{"c++":1,"shell":1},"ACTION":{"c++":1,"shell":1},"CONTRACT":{"c++":1,"objective-c":1,"shell":1},"TORT":{"c++":1,"objective-c":1,"shell":1},"OTHERWISE":{"c++":1,"objective-c":1,"shell":1},"ARISING":{"c++":1,"objective-c":1,"shell":1},"FROM":{"c++":1,"shell":1},"OUT":{"c++":1,"objective-c":1,"shell":1},"CONNECTION":{"c++":1,"shell":1},"WITH":{"c++":1,"shell":1},"USE":{"c++":1,"objective-c":1,"shell":1},"DEALINGS":{"c++":1,"shell":1},"include":{"c++":1,"c":1,"html":1,"objective-c":1,"ruby":1,"shell":1},"node":{"c++":1,"html":1},"h":{"c++":1,"c":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"node_buffer":{"c++":1},"v8":{"c++":1},"profiler":{"c++":1},"assert":{"c++":1,"c":1,"objective-c":1},"stdlib":{"c++":1,"c":1,"objective-c":1},"malloc":{"c++":1,"c":1,"objective-c":1},"string":{"c++":1,"c":1,"javascript":1,"objective-c":1,"python":1},"memcpy":{"c++":1,"objective-c":1},"ifdef":{"c++":1,"c":1,"html":1,"objective-c":1},"__POSIX__":{"c++":1},"arpa":{"c++":1},"inet":{"c++":1},"htons":{"c++":1},"htonl":{"c++":1},"endif":{"c++":1,"c":1,"html":1,"objective-c":1},"define":{"c++":1,"c":1,"objective-c":1},"MIN":{"c++":1},"b":{"c++":1,"c":1,"css":1,"objective-c":1,"ruby":1},"BUFFER_CLASS_ID":{"c++":1},"0xBABE":{"c++":1},"namespace":{"c++":1},"using":{"c++":1,"objective-c":1,"python":1,"ruby":1},"SLICE_ARGS":{"c++":1},"start_arg":{"c++":1},"end_arg":{"c++":1},"if":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"IsInt32":{"c++":1},"return":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"ThrowException":{"c++":1},"Exception":{"c++":1,"python":1},"TypeError":{"c++":1,"python":1},"String":{"c++":1,"javascript":1,"ruby":1},"New":{"c++":1,"css":1,"html":1},"Bad":{"c++":1},"argument":{"c++":1,"objective-c":1},"int32_t":{"c++":1},"start":{"c++":1,"c":1},"Int32Value":{"c++":1},"end":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"Error":{"c++":1,"c":1,"javascript":1,"objective-c":1,"python":1},"Must":{"c++":1},"have":{"c++":1,"c":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"size_t":{"c++":1,"c":1,"objective-c":1},"parent":{"c++":1,"html":1},"length_":{"c++":1},"cannot":{"c++":1},"longer":{"c++":1,"objective-c":1},"than":{"c++":1,"c":1,"objective-c":1,"shell":1},"length":{"c++":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"static":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1},"Persistent":{"c++":1},"length_symbol":{"c++":1},"chars_written_sym":{"c++":1},"write_sym":{"c++":1},"FunctionTemplate":{"c++":1},"Buffer":{"c++":1,"objective-c":1},"constructor_template":{"c++":1},"inline":{"c++":1,"css":1},"base64_decoded_size":{"c++":1},"const":{"c++":1,"c":1,"objective-c":1},"char":{"c++":1,"c":1,"objective-c":1},"src":{"c++":1,"css":1,"html":1},"size":{"c++":1,"c":1,"css":1,"javascript":1,"objective-c":1,"python":1},"int":{"c++":1,"c":1,"objective-c":1},"remainder":{"c++":1},"special":{"c++":1,"objective-c":1,"python":1},"case":{"c++":1,"c":1,"objective-c":1,"python":1,"shell":1},"byte":{"c++":1,"python":1},"input":{"c++":1,"css":1,"html":1,"shell":1},"decoded":{"c++":1},"else":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"non":{"c++":1,"objective-c":1,"python":1,"shell":1},"padded":{"c++":1,"css":1},"add":{"c++":1,"c":1,"css":1,"objective-c":1,"shell":1},"extra":{"c++":1,"css":1,"html":1,"objective-c":1},"bytes":{"c++":1,"objective-c":1,"python":1},"check":{"c++":1,"c":1,"css":1,"javascript":1,"objective-c":1},"for":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"trailing":{"c++":1,"javascript":1,"shell":1},"padding":{"c++":1,"css":1},"ByteLength":{"c++":1},"Handle":{"c++":1,"python":1},"enum":{"c++":1,"objective-c":1},"encoding":{"c++":1,"objective-c":1,"python":1},"enc":{"c++":1},"HandleScope":{"c++":1},"scope":{"c++":1,"css":1},"UTF8":{"c++":1,"objective-c":1},"Utf8Length":{"c++":1},"BASE64":{"c++":1},"Utf8Value":{"c++":1},"v":{"c++":1,"python":1,"ruby":1},"UCS2":{"c++":1},"Length":{"c++":1},"HEX":{"c++":1},"Object":{"c++":1,"javascript":1,"objective-c":1},"get":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"from":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"global":{"c++":1,"css":1,"ruby":1},"Local":{"c++":1},"Context":{"c++":1},"GetCurrent":{"c++":1},"Global":{"c++":1,"ruby":1},"Value":{"c++":1},"bv":{"c++":1},"Get":{"c++":1,"ruby":1},"NewSymbol":{"c++":1},"IsFunction":{"c++":1},"Function":{"c++":1,"javascript":1},"Cast":{"c++":1},"argv":{"c++":1,"c":1},"instance":{"c++":1,"objective-c":1,"python":1,"ruby":1},"NewInstance":{"c++":1},"Close":{"c++":1,"html":1},"arg":{"c++":1,"c":1,"html":1,"objective-c":1,"ruby":1},"Integer":{"c++":1,"objective-c":1,"python":1},"NewFromUnsigned":{"c++":1},"GetFunction":{"c++":1},"IsEmpty":{"c++":1},"NULL":{"c++":1,"c":1,"objective-c":1},"ObjectWrap":{"c++":1},"Unwrap":{"c++":1},"data":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"python":1,"ruby":1,"shell":1},"obj":{"c++":1,"html":1,"javascript":1},"buffer":{"c++":1,"objective-c":1},"Replace":{"c++":1},"free_callback":{"c++":1},"callback":{"c++":1,"javascript":1},"void":{"c++":1,"c":1,"html":1,"objective-c":1},"hint":{"c++":1},"Arguments":{"c++":1},"args":{"c++":1,"c":1,"ruby":1},"IsConstructCall":{"c++":1},"FromConstructorTemplate":{"c++":1},"IsUint32":{"c++":1},"ThrowTypeError":{"c++":1},"Uint32Value":{"c++":1},"kMaxLength":{"c++":1},"ThrowRangeError":{"c++":1},"new":{"c++":1,"css":1,"html":1,"javascript":1,"python":1,"ruby":1,"shell":1},"This":{"c++":1,"c":1,"html":1,"objective-c":1,"python":1,"ruby":1},"wrapper":{"c++":1,"css":1,"html":1},"Wrap":{"c++":1},"callback_":{"c++":1},"handle_":{"c++":1},"SetWrapperClassId":{"c++":1},"data_":{"c++":1},"callback_hint_":{"c++":1},"delete":{"c++":1,"css":1},"V8":{"c++":1},"AdjustAmountOfExternalAllocatedMemory":{"c++":1},"static_cast":{"c++":1},"intptr_t":{"c++":1},"sizeof":{"c++":1,"objective-c":1},"SetIndexedPropertiesToExternalArrayData":{"c++":1},"kExternalUnsignedByteArray":{"c++":1},"Set":{"c++":1,"c":1,"javascript":1,"python":1,"ruby":1},"BinarySlice":{"c++":1},"Encode":{"c++":1,"python":1},"BINARY":{"c++":1},"AsciiSlice":{"c++":1},"Utf8Slice":{"c++":1},"Ucs2Slice":{"c++":1},"uint16_t":{"c++":1,"objective-c":1},"base64_table":{"c++":1},"ABCDEFGHIJKLMNOPQRSTUVWXYZ":{"c++":1},"abcdefghijklmnopqrstuvwxyz":{"c++":1},"0123456789":{"c++":1},"supports":{"c++":1},"regular":{"c++":1,"css":1},"URL":{"c++":1,"html":1,"python":1},"safe":{"c++":1},"base64":{"c++":1},"unbase64_table":{"c++":1},"unbase64":{"c++":1},"x":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"uint8_t":{"c++":1,"objective-c":1},"Base64Slice":{"c++":1},"n":{"c++":1,"c":1,"css":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"out_len":{"c++":1},"out":{"c++":1,"objective-c":1,"python":1,"shell":1},"bitbuf":{"c++":1},"i":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1},"index":{"c++":1,"css":1,"javascript":1,"objective-c":1,"ruby":1},"j":{"c++":1,"html":1},"c":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1,"ruby":1},"bool":{"c++":1,"css":1},"b1_oob":{"c++":1},"b2_oob":{"c++":1},"while":{"c++":1,"c":1,"objective-c":1,"python":1,"shell":1},"false":{"c++":1,"css":1,"javascript":1,"objective-c":1,"ruby":1},"true":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"0x03":{"c++":1},"0x0F":{"c++":1},"0x3F":{"c++":1},"fill":{"c++":1,"css":1},"value":{"c++":1,"c":1,"html":1,"objective-c":1,"python":1,"ruby":1},"Fill":{"c++":1},"not":{"c++":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"number":{"c++":1,"css":1,"objective-c":1,"python":1,"shell":1},"memset":{"c++":1,"objective-c":1},"Undefined":{"c++":1},"var":{"c++":1,"css":1,"javascript":1},"bytesCopied":{"c++":1},"target":{"c++":1,"css":1,"html":1,"objective-c":1},"targetStart":{"c++":1,"objective-c":1},"sourceStart":{"c++":1,"objective-c":1},"sourceEnd":{"c++":1,"objective-c":1},"Copy":{"c++":1},"source":{"c++":1,"objective-c":1,"shell":1},"HasInstance":{"c++":1},"First":{"c++":1},"should":{"c++":1,"html":1,"objective-c":1,"python":1},"ToObject":{"c++":1},"target_data":{"c++":1},"Data":{"c++":1,"html":1},"target_length":{"c++":1},"target_start":{"c++":1},"source_start":{"c++":1},"source_end":{"c++":1},"we":{"c++":1,"objective-c":1,"python":1,"shell":1},"re":{"c++":1,"c":1,"html":1,"objective-c":1,"python":1,"shell":1},"done":{"c++":1,"css":1,"objective-c":1,"shell":1},"bounds":{"c++":1,"objective-c":1},"to_copy":{"c++":1},"need":{"c++":1,"objective-c":1,"python":1,"shell":1},"slightly":{"c++":1},"slower":{"c++":1},"memmove":{"c++":1,"objective-c":1},"ranges":{"c++":1},"might":{"c++":1,"objective-c":1},"overlap":{"c++":1},"charsWritten":{"c++":1},"utf8Write":{"c++":1},"offset":{"c++":1,"css":1,"objective-c":1},"maxLength":{"c++":1},"Utf8Write":{"c++":1},"IsString":{"c++":1},"Argument":{"c++":1},"must":{"c++":1,"c":1,"objective-c":1,"shell":1},"s":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"ToString":{"c++":1},"Offset":{"c++":1},"max_length":{"c++":1},"IsUndefined":{"c++":1},"p":{"c++":1,"c":1,"css":1,"html":1,"python":1,"shell":1},"char_written":{"c++":1},"written":{"c++":1,"objective-c":1},"WriteUtf8":{"c++":1},"HINT_MANY_WRITES_EXPECTED":{"c++":1},"NO_NULL_TERMINATION":{"c++":1},"ucs2Write":{"c++":1},"Ucs2Write":{"c++":1},"Write":{"c++":1,"c":1},"asciiWrite":{"c++":1},"AsciiWrite":{"c++":1},"WriteAscii":{"c++":1},"bytesWritten":{"c++":1},"base64Write":{"c++":1},"Base64Write":{"c++":1},"AsciiValue":{"c++":1},"d":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1,"shell":1},"dst":{"c++":1},"dstEnd":{"c++":1},"srcEnd":{"c++":1},"remaining":{"c++":1,"c":1,"objective-c":1},"break":{"c++":1,"css":1,"objective-c":1,"python":1},"0x30":{"c++":1},"0x3C":{"c++":1},"BinaryWrite":{"c++":1},"DecodeWrite":{"c++":1},"nbytes":{"c++":1},"byteLength":{"c++":1},"utf8":{"c++":1},"e":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"ParseEncoding":{"c++":1},"MakeFastBuffer":{"c++":1},"fast_buffer":{"c++":1},"uint32_t":{"c++":1,"objective-c":1},"val":{"c++":1,"c":1,"html":1,"javascript":1,"python":1},"IsObject":{"c++":1},"GetIndexedPropertiesExternalArrayDataType":{"c++":1},"Also":{"c++":1},"SlowBuffers":{"c++":1},"that":{"c++":1,"html":1,"objective-c":1,"python":1,"shell":1},"are":{"c++":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"empty":{"c++":1,"css":1,"ruby":1},"class":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"RetainedBufferInfo":{"c++":1},"public":{"c++":1,"css":1,"javascript":1},"RetainedObjectInfo":{"c++":1},"virtual":{"c++":1},"Dispose":{"c++":1},"IsEquivalent":{"c++":1},"GetHash":{"c++":1},"GetLabel":{"c++":1},"GetSizeInBytes":{"c++":1},"private":{"c++":1,"css":1,"javascript":1,"objective-c":1},"buffer_":{"c++":1},"label":{"c++":1,"css":1,"html":1,"python":1},"reinterpret_cast":{"c++":1},"WrapperInfo":{"c++":1},"class_id":{"c++":1},"As":{"c++":1,"html":1,"objective-c":1,"shell":1},"Initialize":{"c++":1,"javascript":1,"ruby":1},"sanity":{"c++":1,"objective-c":1},"checks":{"c++":1,"objective-c":1},"T":{"c++":1},"Z":{"c++":1},"t":{"c++":1,"c":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"z":{"c++":1,"css":1,"shell":1},"r":{"c++":1,"javascript":1,"objective-c":1,"python":1},"NODE_PSYMBOL":{"c++":1},"_charsWritten":{"c++":1},"InstanceTemplate":{"c++":1},"SetInternalFieldCount":{"c++":1},"SetClassName":{"c++":1},"SlowBuffer":{"c++":1},"NODE_SET_PROTOTYPE_METHOD":{"c++":1},"binarySlice":{"c++":1},"asciiSlice":{"c++":1},"base64Slice":{"c++":1},"ucs2Slice":{"c++":1},"TODO":{"c++":1,"c":1,"ruby":1},"utf16Slice":{"c++":1},"Utf16Slice":{"c++":1},"utf8Slice":{"c++":1},"binaryWrite":{"c++":1},"NODE_SET_METHOD":{"c++":1},"makeFastBuffer":{"c++":1},"HeapProfiler":{"c++":1},"DefineWrapperClass":{"c++":1},"NODE_MODULE":{"c++":1},"Marshall":{"c++":1},"Clow":{"c++":1},"Distributed":{"c++":1},"under":{"c++":1,"objective-c":1},"Boost":{"c++":1},"License":{"c++":1,"objective-c":1,"shell":1},"Version":{"c++":1,"objective-c":1},"See":{"c++":1,"objective-c":1},"accompanying":{"c++":1},"file":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"LICENSE_1_0":{"c++":1},"txt":{"c++":1,"shell":1},"at":{"c++":1,"css":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"http":{"c++":1,"html":1,"objective-c":1,"python":1,"shell":1},"www":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1},"boost":{"c++":1},"org":{"c++":1,"css":1,"html":1,"objective-c":1,"python":1,"shell":1},"ifndef":{"c++":1,"objective-c":1},"_BOOST_MIME_HPP":{"c++":1},"list":{"c++":1,"css":1,"html":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"vector":{"c++":1},"iosfwd":{"c++":1},"spirit":{"c++":1},"qi":{"c++":1},"hpp":{"c++":1},"fusion":{"c++":1},"std_pair":{"c++":1},"phoenix":{"c++":1},"pulls":{"c++":1,"css":1},"Phoenix":{"c++":1},"support_istream_iterator":{"c++":1},"adapted":{"c++":1},"struct":{"c++":1,"c":1,"objective-c":1},"shared_ptr":{"c++":1},"format":{"c++":1,"css":1,"objective-c":1},"algorithm":{"c++":1},"predicate":{"c++":1},"DUMP_MIME_DATA":{"c++":1},"mime":{"c++":1,"javascript":1},"Errors":{"c++":1},"reported":{"c++":1},"exception":{"c++":1,"objective-c":1},"mime_parsing_error":{"c++":1},"std":{"c++":1},"runtime_error":{"c++":1},"explicit":{"c++":1,"python":1},"msg":{"c++":1,"c":1,"javascript":1},"template":{"c++":1},"traits":{"c++":1},"basic_mime":{"c++":1},"detail":{"c++":1,"css":1},"k_crlf":{"c++":1},"015":{"c++":1},"012":{"c++":1},"k_package_name":{"c++":1},"Proposed":{"c++":1},"Mime":{"c++":1},"k_package_version":{"c++":1},"k_content_type_header":{"c++":1},"Content":{"c++":1,"javascript":1,"python":1},"Type":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1},"k_mime_version_header":{"c++":1},"default_types":{"c++":1},"typedef":{"c++":1,"c":1,"objective-c":1},"string_type":{"c++":1},"pair":{"c++":1,"javascript":1},"header_type":{"c++":1},"body_type":{"c++":1},"typename":{"c++":1},"find_mime_header":{"c++":1},"str":{"c++":1,"c":1,"javascript":1,"python":1},"searchFor":{"c++":1},"operator":{"c++":1},"iequals":{"c++":1},"first":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"ruby":1,"shell":1},"tracer":{"c++":1},"fn":{"c++":1,"javascript":1,"python":1},"fn_":{"c++":1},"cout":{"c++":1},"endl":{"c++":1},"Parsing":{"c++":1},"header":{"c++":1,"css":1,"html":1,"javascript":1,"python":1},"phrase_t":{"c++":1},"phrase_container_t":{"c++":1},"mime_content_type":{"c++":1},"type":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"sub_type":{"c++":1},"phrases":{"c++":1},"phx":{"c++":1},"_val":{"c++":1},"_1":{"c++":1},"Iterator":{"c++":1},"Container":{"c++":1},"mime_header_parser":{"c++":1},"grammar":{"c++":1},"base_type":{"c++":1},"mime_headerList":{"c++":1},"mime_header":{"c++":1},"crlf":{"c++":1},"token":{"c++":1,"html":1,"objective-c":1},"lit":{"c++":1},"char_":{"c++":1},"zA":{"c++":1},"Z_0":{"c++":1},"In":{"c++":1,"objective-c":1},"Classifieds":{"c++":1},"000001":{"c++":1},"begins":{"c++":1},"with":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"CRLF":{"c++":1,"javascript":1},"valuePart":{"c++":1},"eps":{"c++":1},"valueCont":{"c++":1},"contWS":{"c++":1},"name":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"ruby":1,"shell":1},"part":{"c++":1,"python":1},"on_error":{"c++":1,"c":1},"fail":{"c++":1,"objective-c":1},"Expecting":{"c++":1},"labels":{"c++":1,"css":1,"html":1},"_4":{"c++":1},"here":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"construct":{"c++":1},"_3":{"c++":1},"_2":{"c++":1},"rule":{"c++":1,"css":1,"html":1},"value_type":{"c++":1},"read_headers":{"c++":1},"begin":{"c++":1,"ruby":1},"__func__":{"c++":1},"retVal":{"c++":1},"mh_parser":{"c++":1},"parse":{"c++":1,"javascript":1,"objective-c":1,"ruby":1,"shell":1},"throw":{"c++":1,"objective-c":1,"python":1},"Failed":{"c++":1},"headers":{"c++":1,"python":1},"Headers":{"c++":1,"html":1,"python":1},"const_iterator":{"c++":1},"iter":{"c++":1},"second":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1},"idx":{"c++":1,"objective-c":1},"npos":{"c++":1},"find":{"c++":1,"python":1,"shell":1},"replace":{"c++":1,"javascript":1,"python":1},"strlen":{"c++":1,"c":1,"objective-c":1},"structure":{"c++":1,"objective-c":1},"taken":{"c++":1,"objective-c":1},"RFC":{"c++":1,"python":1},"ietf":{"c++":1},"rfc":{"c++":1},"rfc2045":{"c++":1},"section":{"c++":1,"css":1,"python":1},"mime_content_type_parser":{"c++":1},"content_type_header":{"c++":1},"sub_part":{"c++":1},"phrase":{"c++":1},"extension_token":{"c++":1},"ws":{"c++":1,"c":1},"attribute":{"c++":1,"python":1},"line_sep":{"c++":1},"comment":{"c++":1,"css":1,"html":1},"lexeme":{"c++":1},"alias":{"c++":1,"ruby":1,"shell":1},"quoted_string":{"c++":1},"Xx":{"c++":1},"parse_content_type":{"c++":1},"theHeader":{"c++":1},"ct_parser":{"c++":1},"get_ct_value":{"c++":1},"ctString":{"c++":1},"key":{"c++":1,"css":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"mc":{"c++":1},"Couldn":{"c++":1,"shell":1},"thing":{"c++":1,"objective-c":1},"later":{"c++":1,"objective-c":1,"python":1},"looking":{"c++":1},"boundary":{"c++":1},"somevalue":{"c++":1},"get_boundary":{"c++":1},"Read":{"c++":1,"python":1},"body":{"c++":1,"css":1,"html":1,"javascript":1,"python":1},"multipart":{"c++":1,"python":1},"Return":{"c++":1,"c":1,"javascript":1,"ruby":1},"containers":{"c++":1},"where":{"c++":1,"objective-c":1},"actual":{"c++":1,"c":1,"python":1},"rest":{"c++":1},"sub":{"c++":1,"css":1},"parts":{"c++":1,"javascript":1,"ruby":1},"Note":{"c++":1,"objective-c":1},"can":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"If":{"c++":1,"objective-c":1,"python":1,"shell":1},"then":{"c++":1,"objective-c":1,"shell":1},"separator":{"c++":1,"css":1},"marker":{"c++":1},"abcde":{"c++":1},"could":{"c++":1,"objective-c":1,"python":1,"shell":1},"separators":{"c++":1},"really":{"c++":1,"objective-c":1},"abcdeCRLF":{"c++":1},"no":{"c++":1,"css":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"sub_part_t":{"c++":1},"sub_parts_t":{"c++":1},"bodyContainer":{"c++":1},"multipart_body_type":{"c++":1},"prolog_is_missing":{"c++":1},"body_prolog":{"c++":1},"sub_parts":{"c++":1},"body_epilog":{"c++":1},"Parse":{"c++":1,"javascript":1,"ruby":1},"mulitpart":{"c++":1},"Either":{"c++":1},"boundaryCRLF":{"c++":1},"which":{"c++":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"some":{"c++":1,"ruby":1,"shell":1},"sequence":{"c++":1,"objective-c":1},"chars":{"c++":1,"objective-c":1},"I":{"c++":1,"html":1,"objective-c":1,"shell":1},"am":{"c++":1},"deliberately":{"c++":1},"checking":{"c++":1},"termination":{"c++":1},"multipart_body_parser":{"c++":1},"isMissing":{"c++":1},"mimeBody":{"c++":1},"m_is_missing":{"c++":1},"Thanks":{"c++":1},"Michael":{"c++":1},"Caisse":{"c++":1},"working":{"c++":1},"bareSep":{"c++":1},"ref":{"c++":1,"css":1,"html":1},"sep":{"c++":1},"Break":{"c++":1},"up":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1,"python":1},"multi":{"c++":1,"ruby":1},"into":{"c++":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"its":{"c++":1,"html":1,"objective-c":1,"python":1},"constituent":{"c++":1},"multipart_part_parser":{"c++":1},"mimeParts":{"c++":1},"terminator":{"c++":1},"read_multipart_body":{"c++":1},"mp_body":{"c++":1},"innerC":{"c++":1},"mpBody":{"c++":1},"mb_parser":{"c++":1},"mp_parser":{"c++":1},"back_inserter":{"c++":1},"Multipart":{"c++":1},"Body":{"c++":1},"count":{"c++":1,"css":1,"objective-c":1,"ruby":1},"trailer":{"c++":1},"missing":{"c++":1,"shell":1},"Prolog":{"c++":1,"html":1},"ostream_iterator":{"c++":1},"Epilog":{"c++":1},"read_simplepart_body":{"c++":1},"SinglePart":{"c++":1},"FIXME":{"c++":1},"Need":{"c++":1,"objective-c":1},"headerList":{"c++":1},"write_headers":{"c++":1},"ostream":{"c++":1},"write_body":{"c++":1},"write_boundary":{"c++":1},"isLast":{"c++":1},"leadingCR":{"c++":1},"parse_mime":{"c++":1},"default_content_type":{"c++":1},"text":{"c++":1,"css":1,"html":1,"javascript":1,"python":1,"shell":1},"plain":{"c++":1,"javascript":1},"simple_part":{"c++":1},"multi_part":{"c++":1},"message_part":{"c++":1},"part_kind":{"c++":1},"Types":{"c++":1},"headerEntry":{"c++":1},"iterator":{"c++":1},"headerIter":{"c++":1},"constHeaderIter":{"c++":1},"mimePtr":{"c++":1},"partList":{"c++":1},"partIter":{"c++":1},"constPartIter":{"c++":1},"Constructors":{"c++":1},"destructor":{"c++":1},"assignment":{"c++":1,"css":1},"swap":{"c++":1},"subtype":{"c++":1},"m_body_prolog_is_missing":{"c++":1},"m_body":{"c++":1},"m_body_epilog":{"c++":1},"Can":{"c++":1},"create":{"c++":1,"css":1,"html":1,"objective-c":1,"shell":1},"w":{"c++":1,"c":1,"css":1,"html":1,"ruby":1},"o":{"c++":1,"css":1,"html":1,"ruby":1},"We":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1},"just":{"c++":1,"objective-c":1,"shell":1},"two":{"c++":1,"css":1,"objective-c":1},"Everything":{"c++":1,"html":1,"objective-c":1},"optional":{"c++":1,"css":1,"javascript":1,"shell":1},"m_part_kind":{"c++":1},"part_kind_from_string_pair":{"c++":1},"set_header_value":{"c++":1},"theHeaders":{"c++":1},"m_default_content_type":{"c++":1},"ct":{"c++":1,"javascript":1},"found":{"c++":1,"objective-c":1,"python":1,"ruby":1},"find_if":{"c++":1},"mct":{"c++":1},"m_headers":{"c++":1},"rhs":{"c++":1},"m_subparts":{"c++":1},"shared":{"c++":1,"objective-c":1},"pointers":{"c++":1,"objective-c":1},"subpart_begin":{"c++":1},"subpart_end":{"c++":1},"push_back":{"c++":1},"Simple":{"c++":1,"html":1},"based":{"c++":1,"html":1,"javascript":1,"shell":1},"efficient":{"c++":1},"enough":{"c++":1},"optimize":{"c++":1},"it":{"c++":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"temp":{"c++":1,"shell":1},"What":{"c++":1},"kind":{"c++":1,"objective-c":1},"simple":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"ruby":1},"message":{"c++":1,"css":1,"html":1,"objective-c":1,"shell":1},"get_part_kind":{"c++":1},"Sub":{"c++":1},"information":{"c++":1,"objective-c":1,"ruby":1},"error":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"No":{"c++":1,"objective-c":1,"python":1,"shell":1},"example":{"c++":1,"c":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"part_count":{"c++":1},"check_subpart_index":{"c++":1},"append_part":{"c++":1},"newPart":{"c++":1},"check_subpart_append":{"c++":1},"Reading":{"c++":1},"raw":{"c++":1,"python":1},"header_begin":{"c++":1},"header_end":{"c++":1},"Header":{"c++":1},"manipulation":{"c++":1,"python":1},"tag":{"c++":1,"css":1,"html":1},"still":{"c++":1},"header_exists":{"c++":1},"find_header":{"c++":1},"header_value":{"c++":1},"make_pair":{"c++":1},"get_content_type_header":{"c++":1},"get_content_type":{"c++":1},"Special":{"c++":1},"purpose":{"c++":1,"objective-c":1},"helper":{"c++":1},"routine":{"c++":1},"append_phrase_to_content_type":{"c++":1},"Create":{"c++":1,"html":1},"there":{"c++":1,"objective-c":1,"python":1,"shell":1},"isn":{"c++":1,"objective-c":1},"one":{"c++":1,"c":1,"css":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"p_found":{"c++":1},"already":{"c++":1,"objective-c":1,"python":1},"exists":{"c++":1,"ruby":1},"set":{"c++":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"methods":{"c++":1,"objective-c":1},"body_size":{"c++":1},"set_body":{"c++":1},"contents":{"c++":1,"css":1,"objective-c":1,"python":1,"shell":1},"sz":{"c++":1},"istream":{"c++":1},"istream_iterator":{"c++":1},"new_body":{"c++":1},"set_multipart_prolog_is_missing":{"c++":1},"set_body_prolog":{"c++":1},"new_body_prolog":{"c++":1},"set_body_epilog":{"c++":1},"new_body_epilog":{"c++":1},"Output":{"c++":1,"c":1},"stream_out":{"c++":1},"called":{"c++":1,"objective-c":1},"by":{"c++":1,"c":1,"objective-c":1,"python":1,"shell":1},"wrong":{"c++":1,"html":1,"objective-c":1},"Find":{"c++":1},"invent":{"c++":1},"try":{"c++":1,"html":1,"javascript":1,"python":1,"shell":1},"catch":{"c++":1,"javascript":1,"python":1},"Make":{"c++":1,"python":1},"strings":{"c++":1,"objective-c":1},"more":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"ruby":1,"shell":1},"unique":{"c++":1},"_NextPart":{"c++":1},"08ld":{"c++":1},"clock":{"c++":1,"c":1},"prolog":{"c++":1,"objective-c":1},"don":{"c++":1,"objective-c":1,"python":1,"shell":1},"want":{"c++":1,"objective-c":1,"ruby":1},"on":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"front":{"c++":1},"subtle":{"c++":1,"css":1},"difference":{"c++":1,"objective-c":1},"between":{"c++":1},"an":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"zero":{"c++":1,"css":1,"objective-c":1},"comments":{"c++":1,"css":1,"html":1,"shell":1},"parser":{"c++":1,"javascript":1,"ruby":1},"code":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1,"python":1},"writeCR":{"c++":1},"Build":{"c++":1,"python":1},"make_simple_part":{"c++":1},"retval":{"c++":1},"iterators":{"c++":1},"stream":{"c++":1,"python":1},"last":{"c++":1,"c":1,"css":1,"html":1,"ruby":1,"shell":1},"expect":{"c++":1,"objective-c":1,"python":1},"will":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"complicated":{"c++":1,"objective-c":1},"as":{"c++":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"time":{"c++":1,"c":1,"css":1,"html":1,"objective-c":1,"python":1,"ruby":1},"goes":{"c++":1,"objective-c":1},"delivery":{"c++":1},"status":{"c++":1,"c":1,"css":1,"html":1,"javascript":1,"python":1},"defines":{"c++":1},"faqs":{"c++":1},"rfcs":{"c++":1},"rfc3464":{"c++":1},"html":{"c++":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1},"consists":{"c++":1},"fields":{"c++":1,"css":1,"javascript":1,"objective-c":1,"python":1},"formatted":{"c++":1,"css":1},"according":{"c++":1},"ABNF":{"c++":1},"see":{"c++":1,"css":1,"html":1,"objective-c":1,"python":1,"shell":1},"RFC822":{"c++":1},"Trying":{"c++":1},"access":{"c++":1,"css":1},"xxx":{"c++":1},"How":{"c++":1},"did":{"c++":1,"objective-c":1},"Multi":{"c++":1,"python":1},"always":{"c++":1,"objective-c":1},"only":{"c++":1,"css":1,"objective-c":1},"multiparts":{"c++":1},"mime_part":{"c++":1},"content_type":{"c++":1,"python":1},"ve":{"c++":1,"objective-c":1},"got":{"c++":1,"javascript":1},"xxxx":{"c++":1},"single":{"c++":1,"javascript":1,"objective-c":1,"shell":1},"embedded":{"c++":1,"css":1},"course":{"c++":1},"part_separator":{"c++":1},"cont_type":{"c++":1},"digest":{"c++":1},"rfc822":{"c++":1},"body_and_subParts":{"c++":1},"iter_type":{"c++":1},"Streaming":{"c++":1},"BOOST_FUSION_ADAPT_STRUCT":{"c++":1},"mon":{"c":1},"TJ":{"c":1,"ruby":1},"Holowaychuk":{"c":1,"ruby":1},"tj":{"c":1,"javascript":1},"vision":{"c":1},"media":{"c":1,"css":1,"html":1,"objective-c":1},"ca":{"c":1},"stdio":{"c":1,"objective-c":1},"unistd":{"c":1},"fcntl":{"c":1},"signal":{"c":1},"stdint":{"c":1,"objective-c":1},"sys":{"c":1,"objective-c":1},"types":{"c":1,"javascript":1,"objective-c":1},"wait":{"c":1},"stat":{"c":1,"css":1},"commander":{"c":1,"ruby":1},"ms":{"c":1,"css":1,"javascript":1},"Program":{"c":1,"ruby":1},"version":{"c":1,"css":1,"objective-c":1,"ruby":1,"shell":1},"VERSION":{"c":1,"ruby":1},"Log":{"c":1},"prefix":{"c":1,"html":1},"Monitor":{"c":1},"pidfile":{"c":1},"mon_pidfile":{"c":1},"logfile":{"c":1},"on_restart":{"c":1},"int64_t":{"c":1},"last_restart_at":{"c":1},"daemon":{"c":1},"sleepsec":{"c":1},"max_attempts":{"c":1},"attempts":{"c":1,"objective-c":1,"ruby":1},"monitor_t":{"c":1},"Logger":{"c":1},"log":{"c":1,"html":1},"fmt":{"c":1},"printf":{"c":1,"shell":1},"fprintf":{"c":1},"stderr":{"c":1},"exit":{"c":1,"shell":1},"Check":{"c":1,"javascript":1,"python":1,"ruby":1},"process":{"c":1,"ruby":1,"shell":1},"pid":{"c":1},"alive":{"c":1},"pid_t":{"c":1},"kill":{"c":1},"Graceful":{"c":1},"group":{"c":1,"css":1,"shell":1},"graceful_exit":{"c":1},"sig":{"c":1},"getpid":{"c":1},"shutting":{"c":1},"down":{"c":1,"css":1,"html":1},"bye":{"c":1,"ruby":1},"timestamp":{"c":1},"milliseconds":{"c":1},"timeval":{"c":1},"tv":{"c":1},"ret":{"c":1},"gettimeofday":{"c":1},"tv_sec":{"c":1},"tv_usec":{"c":1},"write_pidfile":{"c":1},"buf":{"c":1},"snprintf":{"c":1},"fd":{"c":1},"open":{"c":1,"css":1,"javascript":1,"objective-c":1},"O_WRONLY":{"c":1},"O_CREAT":{"c":1},"S_IRUSR":{"c":1},"S_IWUSR":{"c":1},"perror":{"c":1},"write":{"c":1,"css":1,"objective-c":1,"python":1,"shell":1},"close":{"c":1,"css":1,"html":1,"python":1},"show_status_of":{"c":1},"off_t":{"c":1},"st_size":{"c":1},"opens":{"c":1},"O_RDONLY":{"c":1},"read":{"c":1,"css":1,"html":1,"python":1,"shell":1},"uptime":{"c":1},"time_t":{"c":1},"modified":{"c":1,"css":1,"objective-c":1,"shell":1},"st_mtime":{"c":1},"now":{"c":1,"objective-c":1,"python":1},"secs":{"c":1},"atoi":{"c":1},"milliseconds_to_long_string":{"c":1},"90m":{"c":1},"0m":{"c":1},"32malive":{"c":1},"m":{"c":1,"css":1,"html":1,"objective-c":1,"shell":1},"31mdead":{"c":1},"Redirect":{"c":1},"redirect_stdio_to":{"c":1},"logfd":{"c":1},"O_APPEND":{"c":1},"0755":{"c":1},"nullfd":{"c":1},"dev":{"c":1,"objective-c":1,"shell":1},"null":{"c":1,"javascript":1,"objective-c":1,"shell":1},"dup2":{"c":1},"Daemonize":{"c":1},"program":{"c":1,"ruby":1},"daemonize":{"c":1},"fork":{"c":1,"css":1},"setsid":{"c":1},"Invoke":{"c":1,"javascript":1},"restart":{"c":1},"command":{"c":1,"css":1,"html":1,"ruby":1,"shell":1},"exec_restart_command":{"c":1},"monitor":{"c":1},"system":{"c":1,"shell":1},"exec_error_command":{"c":1},"since":{"c":1,"objective-c":1,"python":1},"ms_since_last_restart":{"c":1},"maximum":{"c":1,"objective-c":1},"restarts":{"c":1},"within":{"c":1,"objective-c":1,"ruby":1},"seconds":{"c":1,"html":1},"been":{"c":1,"objective-c":1,"python":1},"exceeded":{"c":1,"javascript":1,"objective-c":1},"otherwise":{"c":1},"attempts_exceeded":{"c":1},"reset":{"c":1},"good":{"c":1,"shell":1},"given":{"c":1,"javascript":1,"python":1},"cmd":{"c":1,"shell":1},"exec":{"c":1},"switch":{"c":1,"css":1,"objective-c":1,"ruby":1},"SIGTERM":{"c":1},"SIG_DFL":{"c":1},"SIGQUIT":{"c":1},"sh":{"c":1,"css":1},"execl":{"c":1},"bin":{"c":1,"shell":1},"default":{"c":1,"css":1,"objective-c":1,"ruby":1,"shell":1},"child":{"c":1,"css":1},"waitpid":{"c":1},"signalled":{"c":1},"WIFSIGNALED":{"c":1},"strsignal":{"c":1},"WTERMSIG":{"c":1},"sleep":{"c":1},"goto":{"c":1,"objective-c":1},"WEXITSTATUS":{"c":1},"ago":{"c":1,"html":1},"bailing":{"c":1},"path":{"c":1,"css":1,"python":1},"on_log":{"c":1},"command_t":{"c":1},"self":{"c":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"sec":{"c":1},"on_sleep":{"c":1},"on_daemonize":{"c":1},"on_pidfile":{"c":1},"on_mon_pidfile":{"c":1},"on_status":{"c":1},"required":{"c":1,"css":1,"objective-c":1,"ruby":1},"on_prefix":{"c":1},"on_attempts":{"c":1},"options":{"c":1,"css":1,"javascript":1,"objective-c":1,"ruby":1},"main":{"c":1,"css":1},"argc":{"c":1},"command_init":{"c":1},"usage":{"c":1,"css":1,"html":1,"python":1,"ruby":1},"command_option":{"c":1},"l":{"c":1,"html":1,"objective-c":1,"python":1},"specify":{"c":1},"before":{"c":1,"css":1,"objective-c":1},"executing":{"c":1},"S":{"c":1,"objective-c":1},"P":{"c":1},"retry":{"c":1,"ruby":1},"R":{"c":1,"html":1},"execute":{"c":1,"objective-c":1},"E":{"c":1},"command_parse":{"c":1},"signals":{"c":1},"term":{"c":1},"ioctl":{"c":1},"X":{"c":1,"html":1,"javascript":1,"shell":1},"pos":{"c":1},"_x":{"c":1},"Y":{"c":1,"shell":1},"_y":{"c":1},"Move":{"c":1,"html":1},"y":{"c":1,"css":1,"html":1,"shell":1},"term_move_to":{"c":1},"f":{"c":1,"objective-c":1,"shell":1},"term_move_by":{"c":1},"terminal":{"c":1,"css":1,"ruby":1,"shell":1},"dimensions":{"c":1},"term_size":{"c":1},"winsize":{"c":1},"TIOCGWINSZ":{"c":1},"ws_col":{"c":1},"ws_row":{"c":1},"erase":{"c":1},"term_erase_from_name":{"c":1},"strcmp":{"c":1},"K":{"c":1},"1K":{"c":1},"line":{"c":1,"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"2K":{"c":1},"1J":{"c":1},"J":{"c":1,"html":1},"screen":{"c":1,"css":1,"html":1},"Erase":{"c":1},"term_erase":{"c":1},"color":{"c":1,"css":1,"javascript":1},"term_color_from_name":{"c":1},"black":{"c":1,"css":1},"red":{"c":1,"css":1},"green":{"c":1,"css":1},"yellow":{"c":1},"blue":{"c":1,"css":1,"javascript":1},"magenta":{"c":1},"cyan":{"c":1},"white":{"c":1,"css":1,"objective-c":1},"term_color":{"c":1},"refactor":{"c":1,"ruby":1},"gray":{"c":1},"grey":{"c":1,"css":1},"dm":{"c":1},"background":{"c":1,"css":1},"term_background":{"c":1},"microseconds":{"c":1},"US_SEC":{"c":1},"US_MIN":{"c":1},"US_HOUR":{"c":1},"US_DAY":{"c":1},"US_WEEK":{"c":1},"US_YEAR":{"c":1},"MS_SEC":{"c":1},"MS_MIN":{"c":1},"MS_HOUR":{"c":1},"MS_DAY":{"c":1},"MS_WEEK":{"c":1},"MS_YEAR":{"c":1},"31557600000":{"c":1},"Convert":{"c":1},"representation":{"c":1,"objective-c":1,"python":1},"10ms":{"c":1},"5s":{"c":1},"2m":{"c":1},"1h":{"c":1},"etc":{"c":1,"javascript":1,"ruby":1},"long":{"c":1,"css":1,"objective-c":1},"string_to_microseconds":{"c":1},"len":{"c":1,"javascript":1,"objective-c":1,"python":1},"strtoll":{"c":1,"objective-c":1},"string_to_milliseconds":{"c":1},"string_to_seconds":{"c":1},"developer":{"c":1,"html":1},"milliseconds_to_string":{"c":1},"MS_MAX":{"c":1},"div":{"c":1,"css":1,"html":1},"lldms":{"c":1},"llds":{"c":1},"lldm":{"c":1},"lldh":{"c":1},"lldd":{"c":1},"lldw":{"c":1},"lldy":{"c":1},"sprintf":{"c":1},"less":{"c":1,"objective-c":1},"minute":{"c":1},"hour":{"c":1},"day":{"c":1,"css":1,"html":1},"week":{"c":1},"year":{"c":1},"lld":{"c":1,"objective-c":1},"ss":{"c":1,"css":1},"tests":{"c":1},"TEST_MS":{"c":1},"equal":{"c":1,"python":1},"expected":{"c":1,"objective-c":1},"test_string_to_microseconds":{"c":1},"hey":{"c":1},"1ms":{"c":1},"5ms":{"c":1},"1s":{"c":1,"css":1},"1m":{"c":1},"2d":{"c":1},"test_string_to_milliseconds":{"c":1},"1d":{"c":1},"test_string_to_seconds":{"c":1},"test_milliseconds_to_string":{"c":1},"500ms":{"c":1},"2s":{"c":1,"css":1},"5m":{"c":1},"2w":{"c":1},"3y":{"c":1},"test_milliseconds_to_long_string":{"c":1},"minutes":{"c":1},"days":{"c":1,"css":1,"objective-c":1},"weeks":{"c":1},"years":{"c":1,"html":1},"32m":{"c":1},"u2713":{"c":1},"90mok":{"c":1},"span":{"css":1,"html":1},"applet":{"css":1},"object":{"css":1,"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"iframe":{"css":1},"h1":{"css":1,"html":1},"h2":{"css":1,"html":1},"h3":{"css":1,"html":1},"h4":{"css":1,"html":1},"h5":{"css":1},"h6":{"css":1,"html":1},"blockquote":{"css":1},"pre":{"css":1,"html":1,"objective-c":1},"abbr":{"css":1},"acronym":{"css":1},"address":{"css":1},"big":{"css":1},"cite":{"css":1,"shell":1},"del":{"css":1,"javascript":1,"python":1},"dfn":{"css":1},"em":{"css":1,"html":1},"img":{"css":1,"html":1},"ins":{"css":1},"kbd":{"css":1},"q":{"css":1,"html":1,"objective-c":1},"samp":{"css":1},"small":{"css":1,"html":1,"python":1},"strike":{"css":1},"strong":{"css":1,"objective-c":1},"sup":{"css":1},"tt":{"css":1},"u":{"css":1,"html":1,"objective-c":1},"center":{"css":1},"dl":{"css":1,"html":1},"dt":{"css":1,"html":1},"dd":{"css":1,"html":1},"ol":{"css":1},"ul":{"css":1,"html":1},"li":{"css":1,"html":1},"fieldset":{"css":1},"form":{"css":1,"html":1,"javascript":1,"objective-c":1,"python":1},"legend":{"css":1},"table":{"css":1,"html":1,"objective-c":1},"caption":{"css":1},"tbody":{"css":1},"tfoot":{"css":1},"thead":{"css":1},"tr":{"css":1,"html":1},"th":{"css":1},"td":{"css":1,"html":1},"article":{"css":1},"aside":{"css":1},"canvas":{"css":1},"details":{"css":1,"html":1},"embed":{"css":1},"figure":{"css":1},"figcaption":{"css":1},"footer":{"css":1,"html":1},"hgroup":{"css":1},"menu":{"css":1},"nav":{"css":1,"html":1},"output":{"css":1,"shell":1},"ruby":{"css":1,"html":1},"summary":{"css":1,"shell":1},"mark":{"css":1,"objective-c":1,"python":1},"audio":{"css":1},"video":{"css":1},"margin":{"css":1,"html":1},"border":{"css":1},"button":{"css":1,"html":1},"textarea":{"css":1},"font":{"css":1},"family":{"css":1},"inherit":{"css":1,"ruby":1},"moz":{"css":1},"box":{"css":1},"sizing":{"css":1},"content":{"css":1,"html":1,"javascript":1,"python":1},"height":{"css":1,"html":1},"min":{"css":1,"shell":1},"width":{"css":1,"html":1},"960px":{"css":1},"quotes":{"css":1},"none":{"css":1,"html":1,"python":1},"after":{"css":1},"collapse":{"css":1},"spacing":{"css":1},"overflow":{"css":1,"objective-c":1},"scroll":{"css":1},"progress":{"css":1},"display":{"css":1,"html":1,"ruby":1},"block":{"css":1,"html":1,"objective-c":1,"ruby":1},"weight":{"css":1},"bold":{"css":1,"html":1},"style":{"css":1,"html":1},"italic":{"css":1,"html":1},"ui":{"css":1},"invalid":{"css":1,"python":1,"ruby":1},"shadow":{"css":1},"book":{"css":1},"left":{"css":1,"html":1},"2px":{"css":1},"5px":{"css":1},"url":{"css":1,"html":1,"javascript":1,"python":1,"shell":1},"https":{"css":1,"html":1,"objective-c":1,"python":1,"shell":1},"a248":{"css":1,"html":1},"akamai":{"css":1,"html":1},"net":{"css":1,"html":1},"assets":{"css":1,"html":1},"github":{"css":1,"html":1,"objective-c":1,"shell":1},"com":{"css":1,"html":1,"objective-c":1,"shell":1},"images":{"css":1,"html":1},"modules":{"css":1,"html":1},"books":{"css":1},"effect":{"css":1},"gif":{"css":1},"068fc767":{"css":1},"repeat":{"css":1},"100px":{"css":1},"130px":{"css":1},"inset":{"css":1},"1px":{"css":1},"rgba":{"css":1},"callout":{"css":1},"15px":{"css":1},"10px":{"css":1},"13px":{"css":1},"8d8d6d":{"css":1},"fffef1":{"css":1},"solid":{"css":1},"e5e2c8":{"css":1},"radius":{"css":1},"4px":{"css":1},"000":{"css":1},"16px":{"css":1},"bottom":{"css":1,"objective-c":1},"hr":{"css":1},"transparent":{"css":1},"top":{"css":1,"html":1,"objective-c":1},"fff":{"css":1},"subdued":{"css":1},"ddd":{"css":1},"f8f8f8":{"css":1},"featured":{"css":1},"12px":{"css":1},"e8f0f5":{"css":1},"d2d9de":{"css":1},"right":{"css":1,"html":1,"objective-c":1},"e5e9ed":{"css":1},"3px":{"css":1},"c6d5df":{"css":1},"14px":{"css":1},"20px":{"css":1},"console":{"css":1},"eee":{"css":1},"11px":{"css":1},"diagram":{"css":1},"align":{"css":1,"objective-c":1},"screenshot":{"css":1},"b4cad8":{"css":1},"mini":{"css":1,"html":1},"5d5900":{"css":1},"e7e7ce":{"css":1},"fffff6":{"css":1},"linear":{"css":1,"objective-c":1},"gradient":{"css":1},"fffde3":{"css":1},"webkit":{"css":1},"position":{"css":1},"relative":{"css":1},"vertical":{"css":1},"middle":{"css":1,"html":1},"d5d5d5":{"css":1},"e5e5e5":{"css":1},"help":{"css":1,"html":1,"ruby":1,"shell":1},"mega":{"css":1},"icon":{"css":1,"html":1},"infotip":{"css":1},"6d6d4b":{"css":1},"ffffde":{"css":1},"e4e4c6":{"css":1},"eff2c7":{"css":1},"dashboard":{"css":1},"dismiss":{"css":1,"html":1},"absolute":{"css":1},"cursor":{"css":1},"pointer":{"css":1,"objective-c":1},"ceceb8":{"css":1},"hover":{"css":1,"html":1},"c60000":{"css":1},"title":{"css":1,"html":1},"normal":{"css":1},"float":{"css":1},"clear":{"css":1,"html":1,"javascript":1,"objective-c":1},"6px":{"css":1},"e4e4e4":{"css":1},"f4f4f4":{"css":1},"25px":{"css":1},"coupon":{"css":1},"dashed":{"css":1},"d1e5ff":{"css":1},"newbie":{"css":1},"fancytitle":{"css":1},"team":{"css":1},"dddb8e":{"css":1},"octotip":{"css":1},"27px":{"css":1},"25494f":{"css":1},"callouts":{"css":1},"octocat":{"css":1,"html":1},"png":{"css":1,"html":1},"039bd04e":{"css":1},"ccf1f9":{"css":1},"b1ecf8":{"css":1},"frame":{"css":1,"objective-c":1},"9px":{"css":1},"18px":{"css":1},"indent":{"css":1,"html":1},"9999px":{"css":1},"notices":{"css":1},"51b3de69":{"css":1},"50px":{"css":1},"Monaco":{"css":1},"Liberation":{"css":1},"Mono":{"css":1},"Courier":{"css":1},"monospace":{"css":1},"fefefe":{"css":1},"e7e7e7":{"css":1},"cfcfcf":{"css":1},"facebox":{"css":1,"html":1},"badmono":{"css":1,"html":1},"sans":{"css":1},"serif":{"css":1},"flattened":{"css":1},"32px":{"css":1},"password":{"css":1},"email":{"css":1,"html":1},"400px":{"css":1},"short":{"css":1,"objective-c":1},"250px":{"css":1},"autocheck":{"css":1},"loading":{"css":1},"spinners":{"css":1},"spinner":{"css":1},"8af31515":{"css":1},"successful":{"css":1,"objective-c":1,"python":1},"ajax":{"css":1,"html":1},"success":{"css":1},"51d7b329":{"css":1},"errored":{"css":1},"0f9e2010":{"css":1},"200px":{"css":1},"note":{"css":1,"objective-c":1},"9f1006":{"css":1},"checkbox":{"css":1},"highlight":{"css":1,"html":1},"fffbdc":{"css":1},"radio":{"css":1},"cards":{"css":1},"7px":{"css":1},"card":{"css":1},"39px":{"css":1},"visa":{"css":1},"image":{"css":1,"html":1},"pricing":{"css":1},"bc826606":{"css":1},"master":{"css":1},"mastercard":{"css":1},"6e83937f":{"css":1},"american_express":{"css":1},"amex":{"css":1},"17e7abfc":{"css":1},"discover":{"css":1},"189110e8":{"css":1},"jcb":{"css":1},"07338898":{"css":1},"diners_club":{"css":1},"diners":{"css":1},"f30890ec":{"css":1},"disabled":{"css":1},"opacity":{"css":1},"indicator":{"css":1,"html":1},"confirm":{"css":1},"warning":{"css":1,"objective-c":1},"f7ea57":{"css":1},"c0b536":{"css":1},"warn":{"css":1},"hfields":{"css":1},"both":{"css":1,"objective-c":1},"visibility":{"css":1,"html":1},"hidden":{"css":1,"html":1},"30px":{"css":1},"classy":{"css":1,"html":1},"23px":{"css":1},"select":{"css":1,"html":1},"fieldgroup":{"css":1},"previewable":{"css":1},"tabnav":{"css":1},"tabs":{"css":1,"html":1},"CACACA":{"css":1},"actions":{"css":1},"preview":{"css":1},"selected":{"css":1,"html":1},"widget":{"css":1},"max":{"css":1,"shell":1},"500px":{"css":1},"fafafa":{"css":1},"DDD":{"css":1},"focus":{"css":1},"outline":{"css":1},"51A7E8":{"css":1},"fullscreen":{"css":1},"placeholder":{"css":1,"html":1},"aaa":{"css":1},"drag":{"css":1},"drop":{"css":1},"manual":{"css":1,"javascript":1},"chooser":{"css":1},"240px":{"css":1},"80px":{"css":1},"0001":{"css":1},"decoration":{"css":1},"underline":{"css":1},"bd2c00":{"css":1},"uploading":{"css":1},"bad":{"css":1},"failed":{"css":1,"objective-c":1},"request":{"css":1,"html":1,"javascript":1,"python":1},"upload":{"css":1,"python":1},"enabled":{"css":1},"focused":{"css":1},"dragover":{"css":1},"c9ff00":{"css":1},"composer":{"css":1},"contributing":{"css":1},"ffc":{"css":1},"discussion":{"css":1},"bubble":{"css":1},"infobar":{"css":1},"35px":{"css":1},"milestone":{"css":1},"context":{"css":1,"html":1},"pane":{"css":1,"html":1},"assignee":{"css":1},"avatar":{"css":1,"html":1},"container":{"css":1,"html":1},"bar":{"css":1,"html":1,"python":1},"220px":{"css":1},"tab":{"css":1},"8px":{"css":1},"counter":{"css":1},"blank":{"css":1,"shell":1},"search":{"css":1,"html":1,"javascript":1,"objective-c":1},"22px":{"css":1},"link":{"css":1,"html":1,"python":1},"26px":{"css":1},"fieldwrap":{"css":1},"auto":{"css":1,"javascript":1,"python":1},"ring":{"css":1},"mac":{"css":1,"html":1},"focusring":{"css":1},"24px":{"css":1},"d3d3d3":{"css":1},"minibutton":{"css":1,"html":1},"filter":{"css":1,"python":1,"shell":1},"item":{"css":1,"objective-c":1,"python":1},"space":{"css":1,"objective-c":1},"nowrap":{"css":1},"ellipsis":{"css":1},"4183c4":{"css":1},"remove":{"css":1,"html":1,"objective-c":1,"python":1},"pjax":{"css":1,"html":1},"active":{"css":1,"ruby":1},"editable":{"css":1},"icons":{"css":1},"arrow":{"css":1},"35eb0847":{"css":1},"AAA":{"css":1},"ba3d37":{"css":1},"smoothing":{"css":1},"antialiased":{"css":1},"zeroed":{"css":1},"nolabels":{"css":1},"plans":{"css":1},"next":{"css":1,"ruby":1},"655px":{"css":1},"plan":{"css":1},"121px":{"css":1},"29px":{"css":1},"158px":{"css":1},"dedede":{"css":1},"5em":{"css":1,"html":1},"Helvetica":{"css":1},"Light":{"css":1},"2em":{"css":1},"1em":{"css":1},"current":{"css":1,"objective-c":1,"shell":1},"160px":{"css":1},"329ed1":{"css":1},"226fbb":{"css":1},"194a7b":{"css":1},"transform":{"css":1},"uppercase":{"css":1},"payment":{"css":1},"notification":{"css":1,"html":1},"routing":{"css":1},"edit":{"css":1},"notifications":{"css":1,"html":1},"ccc":{"css":1},"settings":{"css":1,"html":1,"python":1},"fa9e00":{"css":1},"subscription":{"css":1},"off":{"css":1,"html":1,"python":1,"shell":1},"page":{"css":1},"listings":{"css":1},"layout":{"css":1},"columns":{"css":1,"html":1},"sidebar":{"css":1},"19px":{"css":1},"660px":{"css":1},"date_selector":{"css":1},"c1c1c1":{"css":1},"no_shadow":{"css":1},"date_selector_ieframe":{"css":1},"month_nav":{"css":1},"year_nav":{"css":1},"month_name":{"css":1},"year_name":{"css":1},"17px":{"css":1},"003C78":{"css":1},"F2F2F2":{"css":1},"prev":{"css":1},"today":{"css":1},"FFFEB3":{"css":1},"unselected_month":{"css":1},"selectable_day":{"css":1},"D8DFE5":{"css":1},"popup":{"css":1,"html":1},"facebox_overlay":{"css":1},"fixed":{"css":1},"0px":{"css":1},"facebox_hide":{"css":1},"facebox_overlayBG":{"css":1},"tipsy":{"css":1},"inner":{"css":1,"objective-c":1},"FFF":{"css":1},"nw":{"css":1},"ne":{"css":1},"sw":{"css":1},"se":{"css":1},"graphs":{"css":1},"area":{"css":1},"addition":{"css":1,"ruby":1},"stroke":{"css":1},"1db34f":{"css":1},"deletion":{"css":1},"ad1017":{"css":1},"cumulative":{"css":1},"047dda":{"css":1},"dasharray":{"css":1},"cadd":{"css":1},"cdel":{"css":1},"ctot":{"css":1},"axis":{"css":1},"g":{"css":1,"javascript":1,"python":1,"shell":1},"tot":{"css":1},"axline":{"css":1},"weekbar":{"css":1},"even":{"css":1,"objective-c":1,"python":1},"odd":{"css":1},"f1f1f1":{"css":1},"yearbar":{"css":1},"f6f6f6":{"css":1},"yearlbl":{"css":1},"commit":{"css":1,"html":1,"shell":1},"activity":{"css":1,"html":1},"f3f3f3":{"css":1},"head":{"css":1,"html":1,"javascript":1,"shell":1},"letter":{"css":1},"rect":{"css":1},"shape":{"css":1},"rendering":{"css":1},"crispedges":{"css":1},"ffc644":{"css":1},"f17f49":{"css":1},"geometricPrecision":{"css":1},"bd380f":{"css":1},"circle":{"css":1},"e1e1e1":{"css":1},"tip":{"css":1},"tint":{"css":1},"tick":{"css":1},"contrib":{"css":1},"450px":{"css":1},"nth":{"css":1},"bbb":{"css":1},"aname":{"css":1},"ameta":{"css":1},"rank":{"css":1},"cmt":{"css":1},"c00":{"css":1},"8cac29":{"css":1},"spark":{"css":1,"shell":1},"f7f7f7":{"css":1},"wklbl":{"css":1},"midlabel":{"css":1},"impact_graph":{"css":1},"impact_legend":{"css":1},"meta":{"css":1,"html":1,"shell":1},"6ec80f":{"css":1},"bc0101":{"css":1},"idate":{"css":1},"graph":{"css":1,"shell":1},"shots":{"css":1},"sprites":{"css":1},"d700165f":{"css":1},"124px":{"css":1},"448px":{"css":1},"commits":{"css":1},"120px":{"css":1},"frequency":{"css":1},"impact":{"css":1,"objective-c":1},"360px":{"css":1},"punchcard":{"css":1},"480px":{"css":1},"traffic":{"css":1},"600px":{"css":1},"clones":{"css":1},"720px":{"css":1},"wheader":{"css":1},"axlabel":{"css":1},"Neue":{"css":1},"Arial":{"css":1},"biglabel":{"css":1},"09em":{"css":1},"dot":{"css":1},"16873c":{"css":1},"4183C4":{"css":1},"d3":{"css":1},"feeaea":{"css":1},"dots":{"css":1},"dir":{"css":1},"selection":{"css":1,"html":1},"info":{"css":1,"html":1,"javascript":1},"dash":{"css":1},"ghead":{"css":1},"h0":{"css":1},"e0e0e0":{"css":1},"face":{"css":1},"Octicons":{"css":1},"Regular":{"css":1},"octicons":{"css":1},"webfont":{"css":1},"ec0c1fa944612b7db2003d32ce67cceec5c08b2e":{"css":1},"eot":{"css":1},"iefix":{"css":1},"opentype":{"css":1},"729fd26aef7d925c631f0605144933462cea3af1":{"css":1},"woff":{"css":1},"fbe65346972149a8d8696e647af90bdd8f6d9a75":{"css":1},"ttf":{"css":1},"truetype":{"css":1},"4cfac6c47d082f5408b0fb7f449e872135f44d08":{"css":1},"svg":{"css":1},"newFontRegular":{"css":1},"transition":{"css":1},"15s":{"css":1},"ease":{"css":1},"repo":{"css":1,"html":1,"shell":1},"f06a":{"css":1},"f001":{"css":1},"forked":{"css":1},"f002":{"css":1},"f003":{"css":1},"f004":{"css":1},"push":{"css":1,"html":1,"javascript":1},"f005":{"css":1},"pull":{"css":1,"objective-c":1},"f006":{"css":1},"readme":{"css":1},"wiki":{"css":1},"f007":{"css":1},"f008":{"css":1},"site":{"css":1,"html":1,"objective-c":1},"blacktocat":{"css":1,"html":1},"f009":{"css":1},"invertocat":{"css":1},"f00a":{"css":1},"download":{"css":1,"html":1},"f00b":{"css":1},"f00c":{"css":1},"keyboard":{"css":1,"html":1},"f00d":{"css":1},"gist":{"css":1,"html":1},"f00e":{"css":1},"f00f":{"css":1},"unknown":{"css":1,"objective-c":1},"f010":{"css":1},"f011":{"css":1},"f012":{"css":1},"zip":{"css":1,"html":1},"f013":{"css":1},"pdf":{"css":1},"f014":{"css":1},"f015":{"css":1},"directory":{"css":1},"f016":{"css":1},"submodule":{"css":1},"f017":{"css":1},"f018":{"css":1},"f019":{"css":1},"member":{"css":1},"added":{"css":1,"javascript":1,"objective-c":1},"f01a":{"css":1},"removed":{"css":1,"ruby":1},"f01b":{"css":1},"follow":{"css":1},"f01c":{"css":1},"watching":{"css":1},"f01d":{"css":1},"unwatch":{"css":1},"f01e":{"css":1},"f01f":{"css":1},"branch":{"css":1,"html":1},"tree":{"css":1,"html":1},"f020":{"css":1},"f021":{"css":1},"f022":{"css":1},"f023":{"css":1},"mirror":{"css":1},"f024":{"css":1},"f025":{"css":1},"issue":{"css":1,"html":1,"objective-c":1},"opened":{"css":1},"f026":{"css":1},"reopened":{"css":1},"f027":{"css":1},"closed":{"css":1},"f028":{"css":1},"f029":{"css":1},"star":{"css":1},"f02a":{"css":1},"f02b":{"css":1},"f02c":{"css":1},"exclamation":{"css":1,"html":1},"f02d":{"css":1},"f02e":{"css":1},"advanced":{"css":1,"html":1,"python":1},"f02f":{"css":1},"f030":{"css":1},"account":{"css":1,"html":1},"f031":{"css":1},"logout":{"css":1,"html":1},"f032":{"css":1},"admin":{"css":1},"tools":{"css":1},"f033":{"css":1},"feed":{"css":1},"f034":{"css":1},"apple":{"css":1,"html":1},"f036":{"css":1},"windows":{"css":1,"html":1},"f037":{"css":1},"primer":{"css":1},"buttons":{"css":1},"sprite":{"css":1},"6047c14510e8ba6d96be0ed68ff38b5caa4dddd2":{"css":1},"ios":{"css":1},"f038":{"css":1},"android":{"css":1},"f039":{"css":1},"f03a":{"css":1},"unread":{"css":1,"html":1},"f03b":{"css":1},"f03c":{"css":1},"arr":{"css":1},"f03d":{"css":1},"f03e":{"css":1},"f03f":{"css":1},"f040":{"css":1},"pin":{"css":1},"f041":{"css":1},"gift":{"css":1},"f042":{"css":1},"f043":{"css":1},"wrench":{"css":1},"f044":{"css":1},"credit":{"css":1},"f045":{"css":1},"f046":{"css":1},"f047":{"css":1},"podcast":{"css":1},"f048":{"css":1},"f049":{"css":1},"force":{"css":1},"f04a":{"css":1},"sync":{"css":1},"f04b":{"css":1},"clone":{"css":1,"html":1},"f04c":{"css":1},"diff":{"css":1},"f04d":{"css":1},"watchers":{"css":1},"f04e":{"css":1},"f04f":{"css":1},"f050":{"css":1},"reply":{"css":1},"f051":{"css":1},"mail":{"css":1,"html":1},"f052":{"css":1},"f053":{"css":1},"f054":{"css":1},"f055":{"css":1},"f056":{"css":1},"f057":{"css":1},"f058":{"css":1},"f059":{"css":1},"collapsed":{"css":1},"f05a":{"css":1},"expanded":{"css":1},"f05b":{"css":1},"f05c":{"css":1},"f05d":{"css":1},"reorder":{"css":1},"f05e":{"css":1},"f05f":{"css":1},"location":{"css":1,"javascript":1,"objective-c":1,"python":1},"f060":{"css":1},"f061":{"css":1},"f062":{"css":1},"quotemark":{"css":1},"f063":{"css":1},"f064":{"css":1},"brightness":{"css":1},"f065":{"css":1},"f066":{"css":1},"normalscreen":{"css":1},"f067":{"css":1},"calendar":{"css":1},"f068":{"css":1},"beer":{"css":1},"f069":{"css":1},"secure":{"css":1,"html":1},"lock":{"css":1},"f06b":{"css":1},"f06c":{"css":1},"f06d":{"css":1},"moved":{"css":1,"objective-c":1,"python":1},"renamed":{"css":1},"f06e":{"css":1},"f06f":{"css":1},"horizontal":{"css":1},"f070":{"css":1},"f071":{"css":1},"jump":{"css":1,"objective-c":1},"f072":{"css":1},"f073":{"css":1},"reference":{"css":1,"javascript":1,"shell":1},"f074":{"css":1},"f075":{"css":1},"save":{"css":1},"document":{"css":1,"html":1},"f076":{"css":1},"megaphone":{"css":1},"f077":{"css":1},"chevron":{"css":1},"f078":{"css":1},"f079":{"css":1},"f07a":{"css":1},"bookmark":{"css":1},"f07b":{"css":1},"filters":{"css":1},"f07c":{"css":1},"f07d":{"css":1},"history":{"css":1,"python":1,"shell":1},"f07e":{"css":1},"external":{"css":1,"objective-c":1},"f07f":{"css":1},"mute":{"css":1},"f080":{"css":1},"f081":{"css":1},"f082":{"css":1},"f083":{"css":1},"slash":{"css":1},"f084":{"css":1},"pulse":{"css":1},"f085":{"css":1},"f086":{"css":1},"refresh":{"css":1},"f087":{"css":1},"telescope":{"css":1},"f088":{"css":1},"microscope":{"css":1},"f089":{"css":1},"f26a":{"css":1},"f201":{"css":1},"f202":{"css":1},"f203":{"css":1},"f204":{"css":1},"f205":{"css":1},"f206":{"css":1},"f207":{"css":1},"f208":{"css":1},"f209":{"css":1},"f20a":{"css":1},"f20b":{"css":1},"f20c":{"css":1},"f20d":{"css":1},"f20e":{"css":1},"f20f":{"css":1},"f210":{"css":1},"f211":{"css":1},"f212":{"css":1},"f213":{"css":1},"f214":{"css":1},"f215":{"css":1},"f216":{"css":1},"f217":{"css":1},"f218":{"css":1},"f219":{"css":1},"f21a":{"css":1},"f21b":{"css":1},"f21c":{"css":1},"f21d":{"css":1},"f21e":{"css":1},"f21f":{"css":1},"f220":{"css":1},"f221":{"css":1},"f222":{"css":1},"f223":{"css":1},"f224":{"css":1},"f225":{"css":1},"f226":{"css":1},"f227":{"css":1},"f228":{"css":1},"f229":{"css":1},"f22a":{"css":1},"f22b":{"css":1},"f22c":{"css":1},"f22d":{"css":1},"f22e":{"css":1},"f22f":{"css":1},"f230":{"css":1},"f231":{"css":1},"f232":{"css":1},"f233":{"css":1},"f234":{"css":1},"f236":{"css":1},"f237":{"css":1},"f238":{"css":1},"f239":{"css":1},"f23a":{"css":1},"f23b":{"css":1},"f23c":{"css":1},"f23d":{"css":1},"f23e":{"css":1},"f23f":{"css":1},"f240":{"css":1},"f241":{"css":1},"f242":{"css":1},"f243":{"css":1},"f244":{"css":1},"f245":{"css":1},"f246":{"css":1},"f247":{"css":1},"f248":{"css":1},"f249":{"css":1},"f24a":{"css":1},"f24b":{"css":1},"f24c":{"css":1},"f24d":{"css":1},"f24e":{"css":1},"f24f":{"css":1},"f250":{"css":1},"f251":{"css":1},"f252":{"css":1},"f253":{"css":1},"f254":{"css":1},"f255":{"css":1},"f256":{"css":1},"f257":{"css":1},"f258":{"css":1},"f259":{"css":1},"f25a":{"css":1},"f25b":{"css":1},"f25c":{"css":1},"f25d":{"css":1},"f25e":{"css":1},"f25f":{"css":1},"f260":{"css":1},"f261":{"css":1},"f262":{"css":1},"f263":{"css":1},"f264":{"css":1},"f265":{"css":1},"f266":{"css":1},"f267":{"css":1},"f268":{"css":1},"f269":{"css":1},"f26b":{"css":1},"f26c":{"css":1},"f26d":{"css":1},"f26e":{"css":1},"f26f":{"css":1},"f270":{"css":1},"f271":{"css":1},"f272":{"css":1},"f273":{"css":1},"f274":{"css":1},"f275":{"css":1},"f276":{"css":1},"f277":{"css":1},"f278":{"css":1},"f279":{"css":1},"f27a":{"css":1},"f27b":{"css":1},"f27c":{"css":1},"f27d":{"css":1},"f27e":{"css":1},"f27f":{"css":1},"f280":{"css":1},"f281":{"css":1},"f282":{"css":1},"f283":{"css":1},"f284":{"css":1},"f285":{"css":1},"f286":{"css":1},"f287":{"css":1},"f288":{"css":1},"f289":{"css":1},"clippy":{"css":1},"93d74a8448d4843acdf2b85a5acbea20e61df5d2":{"css":1},"markdown":{"css":1,"html":1},"important":{"css":1},"absent":{"css":1},"anchor":{"css":1},"28px":{"css":1},"dirty":{"css":1},"shade":{"css":1},"0e7d81b119cc9beae17b0c98093d121fa0050a74":{"css":1},"2n":{"css":1},"eaeaea":{"css":1},"ffffff":{"css":1,"html":1},"err":{"css":1,"javascript":1},"a61717":{"css":1},"e3d2d2":{"css":1},"k":{"css":1,"html":1,"python":1},"cm":{"css":1},"cp":{"css":1,"shell":1},"c1":{"css":1},"cs":{"css":1},"gd":{"css":1},"000000":{"css":1},"ffdddd":{"css":1},"ffaaaa":{"css":1},"ge":{"css":1},"gr":{"css":1},"aa0000":{"css":1},"gh":{"css":1},"gi":{"css":1},"ddffdd":{"css":1},"aaffaa":{"css":1},"go":{"css":1,"objective-c":1},"gp":{"css":1},"gs":{"css":1},"gu":{"css":1},"gt":{"css":1,"html":1},"kc":{"css":1},"kd":{"css":1},"kn":{"css":1},"kp":{"css":1},"kr":{"css":1},"kt":{"css":1},"009999":{"css":1},"d14":{"css":1},"na":{"css":1},"008080":{"css":1},"nb":{"css":1},"0086B3":{"css":1},"nc":{"css":1},"ni":{"css":1},"nf":{"css":1},"nn":{"css":1,"objective-c":1},"nt":{"css":1},"000080":{"css":1},"nv":{"css":1},"ow":{"css":1},"bbbbbb":{"css":1},"mf":{"css":1},"mh":{"css":1},"mi":{"css":1},"mo":{"css":1},"sb":{"css":1},"sc":{"css":1},"sd":{"css":1},"s2":{"css":1},"si":{"css":1},"sx":{"css":1},"sr":{"css":1},"009926":{"css":1},"s1":{"css":1},"bp":{"css":1},"vc":{"css":1},"vg":{"css":1},"vi":{"css":1,"shell":1},"il":{"css":1},"gc":{"css":1},"EAF2F5":{"css":1},"csharp":{"css":1},"0000FF":{"css":1},"2B91AF":{"css":1},"A31515":{"css":1},"arial":{"css":1},"freesans":{"css":1},"clean":{"css":1},"whitesmoke":{"css":1},"f5f5f5":{"css":1},"touch":{"css":1,"html":1},"user":{"css":1,"html":1,"javascript":1,"objective-c":1},"khtml":{"css":1},"primary":{"css":1,"python":1},"74bb5a":{"css":1},"8add6d":{"css":1},"60b044":{"css":1},"69d344":{"css":1},"4c8b36":{"css":1},"4a993e":{"css":1},"mousedown":{"css":1},"danger":{"css":1},"cd504a":{"css":1},"dc5f59":{"css":1},"b33630":{"css":1},"f0f7fa":{"css":1},"d8eaf2":{"css":1},"cbe3ee":{"css":1},"97c7dd":{"css":1},"2a65a0":{"css":1},"0770a0":{"css":1},"0ca6dd":{"css":1},"grouped":{"css":1},"d4d4d4":{"css":1},"bcbcbc":{"css":1},"a0302a":{"css":1},"c65651":{"css":1},"36b825":{"css":1},"28881b":{"css":1},"448da6":{"css":1},"32687b":{"css":1},"dark":{"css":1},"8c8c8c":{"css":1},"6d6d6d":{"css":1},"518cc6":{"css":1},"3072b3":{"css":1},"599bdc":{"css":1},"switcher":{"css":1},"9e9e9e":{"css":1},"F9F9F9":{"css":1},"6A9FD3":{"css":1},"3c74ab":{"css":1},"a4a4a4":{"css":1},"expander":{"css":1},"social":{"css":1},"D4D4D4":{"css":1},"efefef":{"css":1},"fafafb":{"css":1},"d8d8d8":{"css":1},"fdfdfe":{"css":1},"d26911":{"css":1},"D26911":{"css":1},"accordion":{"css":1},"css":{"css":1,"html":1},"truncate":{"css":1},"125px":{"css":1},"expandable":{"css":1},"10000px":{"css":1},"sticky":{"css":1,"html":1},"stick":{"css":1},"about":{"css":1,"html":1,"shell":1},"4d4d4d":{"css":1},"intro":{"css":1},"col":{"css":1,"html":1},"links":{"css":1,"html":1,"python":1},"spacefield":{"css":1},"170px":{"css":1},"about_header":{"css":1},"36px":{"css":1},"580px":{"css":1},"549ef9":{"css":1},"138fd9":{"css":1},"width_wrapper":{"css":1},"300px":{"css":1},"1100px":{"css":1},"skinny":{"css":1},"70px":{"css":1},"visible":{"css":1},"32578D":{"css":1},"parallax_octocat":{"css":1},"800px":{"css":1},"parallax_earth":{"css":1},"700px":{"css":1},"650px":{"css":1},"employee_container":{"css":1},"5n":{"css":1},"140px":{"css":1},"press_releases":{"css":1},"in_the_news":{"css":1},"byline":{"css":1},"more_news":{"css":1},"media_contacts":{"css":1},"media_downloads":{"css":1},"CCC":{"css":1},"175px":{"css":1},"174px":{"css":1},"acceptable_use":{"css":1},"facts":{"css":1},"150px":{"css":1},"jobs":{"css":1,"html":1},"grid":{"css":1},"collage":{"css":1},"benefits":{"css":1},"295px":{"css":1},"40px":{"css":1},"octospinner":{"css":1},"press":{"css":1},"210px":{"css":1},"mentions":{"css":1},"plax":{"css":1},"669px":{"css":1},"parallax_text":{"css":1},"608px":{"css":1},"parallax_bg":{"css":1},"accountcols":{"css":1},"560px":{"css":1},"330px":{"css":1},"overview":{"css":1},"explain":{"css":1},"planusage":{"css":1},"upgrades":{"css":1},"org_plans":{"css":1},"upsell":{"css":1},"d2f4f4":{"css":1},"fdffce":{"css":1},"num":{"css":1,"shell":1},"action":{"css":1,"html":1},"6cc644":{"css":1},"timeleft":{"css":1},"expiring":{"css":1},"df6e00":{"css":1},"couponstatus":{"css":1},"timeicon":{"css":1},"autocomplete":{"css":1},"results":{"css":1,"objective-c":1},"20em":{"css":1},"68px":{"css":1},"navigation":{"css":1},"due_on":{"css":1},"past_due":{"css":1},"state":{"css":1,"javascript":1,"objective-c":1},"suggester":{"css":1},"46px":{"css":1},"65px":{"css":1},"180px":{"css":1},"920px":{"css":1},"wider":{"css":1},"option":{"css":1,"html":1,"objective-c":1,"ruby":1},"25em":{"css":1},"optgroup":{"css":1,"html":1},"Consolas":{"css":1},"clearfix":{"css":1,"html":1},"d00":{"css":1},"cc0000":{"css":1},"sparkline":{"css":1,"shell":1},"fffccc":{"css":1},"8em":{"css":1},"error_box":{"css":1},"FFEBE8":{"css":1},"DD3C10":{"css":1},"corner":{"css":1},"425px":{"css":1},"f4f9fb":{"css":1},"bigwarning":{"css":1},"577407bf":{"css":1},"fffbc9":{"css":1},"ede7a3":{"css":1},"45px":{"css":1},"full":{"css":1,"python":1},"f8f8ff":{"css":1},"d4d4e3":{"css":1},"bigmessage":{"css":1},"blob":{"css":1},"editor":{"css":1,"shell":1},"field":{"css":1,"javascript":1,"python":1},"fieldgroup_back":{"css":1},"7f415d42":{"css":1},"equacols":{"css":1,"html":1},"htabs":{"css":1},"typical":{"css":1},"hooks":{"css":1,"python":1},"049f1819":{"css":1},"addlink":{"css":1},"succeed":{"css":1,"shell":1},"33cc00":{"css":1},"legal":{"css":1,"html":1},"fieldpills":{"css":1},"dingus":{"css":1},"avatarexplain":{"css":1},"54px":{"css":1},"pill":{"css":1},"350px":{"css":1},"332px":{"css":1},"key_value":{"css":1},"smalltabs":{"css":1},"e8e8e8":{"css":1},"d2d2d2":{"css":1},"d1d1d1":{"css":1},"ababab":{"css":1},"f2f2f2":{"css":1},"ececec":{"css":1},"afafaf":{"css":1},"green_highlight":{"css":1},"ccffcc":{"css":1},"red_highlight":{"css":1},"ffcccc":{"css":1},"breadcrumb":{"css":1},"pagehead":{"css":1,"html":1},"breadcrumb_separator":{"css":1},"df53ddba":{"css":1},"metabox":{"css":1},"side_rule":{"css":1},"e8535f35":{"css":1},"230px":{"css":1},"toprule":{"css":1},"670px":{"css":1},"440px":{"css":1},"dashcols":{"css":1},"337px":{"css":1},"column":{"css":1,"html":1,"shell":1},"secondary":{"css":1},"bordered":{"css":1},"column_separator":{"css":1},"f2add615":{"css":1},"browser":{"css":1},"marketing":{"css":1},"d72ea58c":{"css":1},"fourcols":{"css":1},"215px":{"css":1},"leftmost":{"css":1},"690px":{"css":1},"248px":{"css":1},"feature":{"css":1,"ruby":1},"460px":{"css":1},"threecols":{"css":1,"html":1},"shortcuts":{"css":1,"html":1},"mappings":{"css":1,"html":1},"EEE":{"css":1},"platform":{"css":1,"html":1},"macintosh":{"css":1,"html":1},"copyable":{"css":1},"steps":{"css":1},"fbfbfb":{"css":1},"fakerule":{"css":1},"ac":{"css":1},"accept":{"css":1,"html":1},"ac_loading":{"css":1},"large":{"css":1,"objective-c":1,"python":1},"centered":{"css":1},"190px":{"css":1},"mention":{"css":1},"filename":{"css":1,"python":1},"abort":{"css":1,"javascript":1,"ruby":1},"C5D5DD":{"css":1},"E6F1F6":{"css":1},"340px":{"css":1},"cleanheading":{"css":1},"subtext":{"css":1},"branches":{"css":1},"base":{"css":1,"python":1},"diverge":{"css":1},"ahead":{"css":1},"behind":{"css":1},"d0d0d0":{"css":1},"7a7a7a":{"css":1},"hot":{"css":1},"ff704f":{"css":1},"fresh":{"css":1},"ffd266":{"css":1},"b69e67":{"css":1},"stale":{"css":1},"b2d0dd":{"css":1},"1e4152":{"css":1},"hotness":{"css":1},"old":{"css":1},"recently":{"css":1},"touched":{"css":1},"description":{"css":1,"html":1,"ruby":1},"a19e7f":{"css":1},"cancel":{"css":1},"E7E4C2":{"css":1},"ffffe2":{"css":1},"silver":{"css":1},"fdfdfd":{"css":1},"9a9a9a":{"css":1},"c7c7c7":{"css":1},"business":{"css":1},"419b36":{"css":1},"357f2c":{"css":1},"3e9533":{"css":1},"1cbe0a":{"css":1},"158f07":{"css":1},"18a609":{"css":1},"personal":{"css":1},"4794bc":{"css":1},"3a7999":{"css":1},"438bb1":{"css":1},"oauth":{"css":1},"login_form":{"css":1},"submit_btn":{"css":1},"watch":{"css":1},"starring":{"css":1},"unstarred":{"css":1},"starred":{"css":1},"unfollow":{"css":1},"members":{"css":1},"cheatsheet":{"css":1,"html":1},"260px":{"css":1},"mod":{"css":1,"html":1},"chromed":{"css":1},"loader":{"css":1,"html":1},"31px":{"css":1},"ecf0f1":{"css":1},"deactivated":{"css":1},"activated":{"css":1,"html":1},"9ca9a9":{"css":1},"pagination":{"css":1},"gap":{"css":1},"paging":{"css":1},"pager":{"css":1},"e4e9ef":{"css":1},"eff3f6":{"css":1},"d9e1e8":{"css":1},"fafbfd":{"css":1},"dee8f1":{"css":1},"ffffef":{"css":1},"closed_back":{"css":1},"4ad064c0":{"css":1},"filterbar":{"css":1},"cacaca":{"css":1},"b4b4b4":{"css":1},"sort":{"css":1,"ruby":1},"B4B4B4":{"css":1},"sorts":{"css":1},"asc":{"css":1},"desc":{"css":1,"javascript":1},"updated":{"css":1},"language":{"css":1,"html":1,"objective-c":1},"line_numbers":{"css":1},"F8EEC7":{"css":1},"F7CA75":{"css":1},"A1882B":{"css":1},"divider":{"css":1},"E9DBA4":{"css":1},"codesearch":{"css":1},"33px":{"css":1},"commandbar":{"css":1,"html":1},"code_search":{"css":1,"html":1},"598px":{"css":1},"adv_code_search":{"css":1},"completed":{"css":1},"query":{"css":1,"javascript":1,"python":1},"F1F1F1":{"css":1},"cols":{"css":1},"repolist":{"css":1},"visited":{"css":1},"7C65C2":{"css":1},"foot":{"css":1},"ace":{"css":1},"ace_content":{"css":1},"twilight":{"css":1},"ace_editor":{"css":1},"9f9f9f":{"css":1},"ace_focus":{"css":1},"327fbd":{"css":1},"ace_gutter":{"css":1},"ECECEC":{"css":1},"layer":{"css":1},"cell":{"css":1},"ace_print_margin":{"css":1},"ace_scroller":{"css":1},"ace_text":{"css":1},"F8F8F8":{"css":1},"ace_cursor":{"css":1},"ace_overwrite":{"css":1},"A7A7A7":{"css":1},"ace_marker":{"css":1},"ace_selection":{"css":1},"ace_step":{"css":1},"c6dbae":{"css":1},"ace_bracket":{"css":1},"ace_active_line":{"css":1},"ace_invisible":{"css":1},"ace_keyword":{"css":1},"CDA869":{"css":1},"ace_constant":{"css":1},"CF6A4C":{"css":1},"ace_invalid":{"css":1},"ace_illegal":{"css":1},"ace_deprecated":{"css":1},"D2A8A1":{"css":1},"ace_support":{"css":1},"9B859D":{"css":1},"ace_function":{"css":1},"DAD085":{"css":1},"ace_string":{"css":1},"8F9D6A":{"css":1},"ace_regexp":{"css":1},"E9C062":{"css":1},"ace_comment":{"css":1},"5F5A60":{"css":1},"ace_variable":{"css":1},"7587A6":{"css":1},"ace_xml_pe":{"css":1},"solarized":{"css":1},"002B36":{"css":1},"93A1A1":{"css":1},"D30102":{"css":1},"073642":{"css":1},"ace_language":{"css":1},"B58900":{"css":1},"ace_numeric":{"css":1},"D33682":{"css":1},"268BD2":{"css":1},"2AA198":{"css":1},"657B83":{"css":1},"light":{"css":1,"shell":1},"FDF6E3":{"css":1},"586E75":{"css":1},"EEE8D5":{"css":1},"instruction":{"css":1,"objective-c":1},"groups":{"css":1,"shell":1},"instructions":{"css":1,"objective-c":1},"445px":{"css":1},"code_search_results":{"css":1,"html":1},"b8d1e3":{"css":1},"DDEAF3":{"css":1},"3em":{"css":1,"html":1},"7em":{"css":1},"results_and_sidebar":{"css":1},"52em":{"css":1},"result":{"css":1,"html":1,"objective-c":1,"python":1},"gravatar":{"css":1,"html":1},"75em":{"css":1},"aka":{"css":1,"html":1},"snippet":{"css":1,"html":1},"DejaVu":{"css":1},"Sans":{"css":1},"Bitstream":{"css":1},"Vera":{"css":1},"FAFFA6":{"css":1},"15em":{"css":1},"35s":{"css":1},"boxed":{"css":1},"60px":{"css":1},"editing":{"css":1},"hide":{"css":1},"author":{"css":1,"shell":1},"2d90c3":{"css":1},"date":{"css":1},"939AA0":{"css":1},"owner":{"css":1},"f4faf6":{"css":1},"d8e5dd":{"css":1},"2cc03e":{"css":1},"collab":{"css":1},"f8fbfc":{"css":1},"dde8eb":{"css":1},"review":{"css":1},"holder":{"css":1},"704px":{"css":1},"724px":{"css":1},"topic":{"css":1},"f9f8a5":{"css":1},"e7e693":{"css":1},"pending":{"css":1,"python":1},"bcbc00":{"css":1},"9ee692":{"css":1},"6eda62":{"css":1},"30a900":{"css":1},"failure":{"css":1},"discusion":{"css":1},"47px":{"css":1},"FFEAEA":{"css":1},"E2A0A0":{"css":1},"wrap":{"css":1},"quoted":{"css":1},"signature":{"css":1},"toggle":{"css":1},"c0ccd0":{"css":1},"830px":{"css":1},"ajaxindicator":{"css":1},"deprecated":{"css":1},"sha":{"css":1},"quiet":{"css":1},"notes":{"css":1},"gitnotes":{"css":1},"ffd":{"css":1},"eea":{"css":1},"fafbd2":{"css":1},"e8eac0":{"css":1},"f5f7ce":{"css":1},"4e575b":{"css":1},"9cabb1":{"css":1},"tease":{"css":1},"e6f1f6":{"css":1},"b7c7cf":{"css":1},"d8e6ec":{"css":1},"7f9199":{"css":1},"authorship":{"css":1},"committer":{"css":1},"heading":{"css":1},"3a505b":{"css":1},"c5d5dd":{"css":1},"f7fbfc":{"css":1},"52px":{"css":1},"e2eaee":{"css":1},"fcfce2":{"css":1},"44px":{"css":1},"gobutton":{"css":1},"eff6f9":{"css":1},"ddecf3":{"css":1},"cedee5":{"css":1},"5a5b4e":{"css":1},"d5dcdf":{"css":1},"f2f5f6":{"css":1},"e3eaed":{"css":1},"e7e86d":{"css":1},"f9fac9":{"css":1},"f3f494":{"css":1},"fbfdfe":{"css":1},"eaf4f8":{"css":1},"CFDEE5":{"css":1},"91a6b1":{"css":1},"E7E86D":{"css":1},"c3c45c":{"css":1},"cfdee5":{"css":1},"e1e29e":{"css":1},"f6fafc":{"css":1},"91A6B1":{"css":1},"C3C45C":{"css":1},"browse":{"css":1},"95px":{"css":1},"condensed":{"css":1},"E2EAEE":{"css":1},"F7FBFC":{"css":1},"E5E5E5":{"css":1},"213f4d":{"css":1},"dotted":{"css":1},"34px":{"css":1},"7b878c":{"css":1},"e7ecee":{"css":1},"d2d9dd":{"css":1},"participation":{"css":1},"quickstat":{"css":1},"compare":{"css":1,"objective-c":1},"74a4d4":{"css":1},"2a5177":{"css":1},"range":{"css":1,"javascript":1,"objective-c":1},"switch_icon":{"css":1},"14fc9c7d":{"css":1},"cutoff":{"css":1},"37px":{"css":1},"compare_too_big":{"css":1},"5b6375":{"css":1},"cedadf":{"css":1},"eaf2f5":{"css":1},"bedce7":{"css":1},"word":{"css":1,"ruby":1},"id":{"css":1,"html":1,"objective-c":1},"toc":{"css":1},"BD2C00":{"css":1},"677a85":{"css":1},"D0B44C":{"css":1},"6CC644":{"css":1},"show":{"css":1,"shell":1},"stats":{"css":1},"diffstat":{"css":1},"deleted":{"css":1},"minus":{"css":1},"plus":{"css":1},"edu_contact_hidden":{"css":1},"edu":{"css":1},"contact":{"css":1,"html":1},"370px":{"css":1},"412px":{"css":1},"heartocat":{"css":1},"overlay":{"css":1,"html":1},"f6f8f8":{"css":1},"e9eeee":{"css":1},"f0f3f3":{"css":1},"26367bd8":{"css":1},"selector":{"css":1,"objective-c":1},"commitish":{"css":1},"4f83c4":{"css":1},"filterable":{"css":1},"alt":{"css":1,"html":1},"custom":{"css":1,"shell":1},"contributions":{"css":1},"capped":{"css":1},"popular":{"css":1},"repos":{"css":1},"stars":{"css":1,"html":1},"rdesc":{"css":1},"286px":{"css":1},"period":{"css":1,"objective-c":1},"lang":{"css":1},"repository":{"css":1,"html":1,"shell":1},"107px":{"css":1},"64px":{"css":1},"lbl":{"css":1},"contribution":{"css":1},"blankslate":{"css":1},"backing":{"css":1},"cmeta":{"css":1},"3f3f3f":{"css":1},"device":{"css":1},"040404":{"css":1},"manage":{"css":1},"orgs":{"css":1},"protip":{"css":1},"bootcamp":{"css":1},"829aa8":{"css":1},"405a6a":{"css":1},"677c89":{"css":1},"6b808d":{"css":1},"e9f1f4":{"css":1},"d8dee2":{"css":1},"bootcampo":{"css":1},"fffff5":{"css":1},"f5f3b4":{"css":1},"dfddb5":{"css":1},"fcfce9":{"css":1},"f1eea3":{"css":1},"d6d4ad":{"css":1},"133px":{"css":1},"f1efaf":{"css":1},"setup":{"css":1},"octocat_setup":{"css":1},"01fc92e0":{"css":1},"octocat_create":{"css":1},"dfce7258":{"css":1},"octocat_fork":{"css":1},"b55b0082":{"css":1},"octocat_social":{"css":1},"69c58ee1":{"css":1},"step":{"css":1},"largenumb_sprites":{"css":1},"6e5db82f":{"css":1},"three":{"css":1,"objective-c":1},"128px":{"css":1},"four":{"css":1},"192px":{"css":1},"e1e1e2":{"css":1},"52595d":{"css":1},"99a4aa":{"css":1},"filter_input":{"css":1},"313px":{"css":1},"repo_filterer":{"css":1},"all_repos":{"css":1},"filter_selected":{"css":1},"C8C8C8":{"css":1},"repo_list":{"css":1},"d0d0d1":{"css":1},"fffeea":{"css":1},"b7b7b7":{"css":1},"9f9fa0":{"css":1},"225px":{"css":1},"octofication":{"css":1},"8211dc5c":{"css":1},"dcf7dd":{"css":1},"bbd2bc":{"css":1},"d1ead2":{"css":1},"a60000":{"css":1},"promotion":{"css":1},"1b3650":{"css":1},"cee0e7":{"css":1},"f5fbff":{"css":1},"e4f0ff":{"css":1},"logo":{"css":1,"html":1},"62px":{"css":1},"33558e80":{"css":1},"job":{"css":1},"a9b8be":{"css":1},"335px":{"css":1},"news":{"css":1},"profile":{"css":1,"html":1,"shell":1},"feed_filter":{"css":1},"AAAAAA":{"css":1},"alert":{"css":1},"B0C4CE":{"css":1},"6em":{"css":1},"e8f1f6":{"css":1},"git_hub":{"css":1},"through":{"css":1,"objective-c":1},"emoji":{"css":1},"390px":{"css":1},"followers":{"css":1,"html":1},"35em":{"css":1},"public_news":{"css":1},"docs":{"css":1},"680px":{"css":1},"chapters":{"css":1},"expand":{"css":1},"rotate":{"css":1},"90deg":{"css":1},"progid":{"css":1},"DXImageTransform":{"css":1},"Microsoft":{"css":1,"javascript":1},"Matrix":{"css":1},"M11":{"css":1},"123031769111886e":{"css":1},"M12":{"css":1},"M21":{"css":1},"M22":{"css":1},"sizingMethod":{"css":1},"zoom":{"css":1},"zen":{"css":1},"topsearch":{"css":1,"html":1},"upper_footer":{"css":1,"html":1},"userbox":{"css":1,"html":1},"downloads":{"css":1,"html":1},"qrcode":{"css":1},"uploader":{"css":1},"uploads":{"css":1,"python":1},"918px":{"css":1},"choose":{"css":1,"shell":1},"fallback":{"css":1,"python":1},"succeeded":{"css":1},"007a09":{"css":1},"swfupload":{"css":1},"01":{"css":1},"ready":{"css":1},"diagonal_lines":{"css":1},"166867f9":{"css":1},"21px":{"css":1},"filechosen":{"css":1},"numbers":{"css":1,"objective-c":1,"shell":1},"managing":{"css":1},"explorecols":{"css":1},"explore":{"css":1,"html":1},"trending":{"css":1},"repositories":{"css":1,"html":1},"times":{"css":1},"ranked":{"css":1},"410px":{"css":1},"player":{"css":1},"podcasts":{"css":1},"362px":{"css":1},"E0E0E0":{"css":1},"164px":{"css":1},"66e4f85d":{"css":1},"5000px":{"css":1},"footer_nav":{"css":1,"html":1},"thin":{"css":1},"lower_footer":{"css":1,"html":1},"enterprise":{"css":1,"html":1},"179px":{"css":1},"cfe015e8":{"css":1},"sponsor":{"css":1},"forgot_password_form":{"css":1},"formbody":{"css":1},"nothing":{"css":1,"objective-c":1},"E9F1F4":{"css":1},"2f424e":{"css":1},"a00":{"css":1},"inside":{"css":1},"standard":{"css":1,"objective-c":1},"submit":{"css":1,"html":1},"ebebeb":{"css":1},"subpixel":{"css":1},"f2e1e1":{"css":1},"staff":{"css":1},"unicorn":{"css":1},"105px":{"css":1},"4x":{"css":1,"html":1,"objective-c":1},"contextually":{"css":1},"d2e0ef":{"css":1},"e9f2fc":{"css":1},"d2e4f9":{"css":1},"top_search_form":{"css":1,"html":1},"B5B5B5":{"css":1},"cdcdcd":{"css":1},"155px":{"css":1},"logged_out":{"css":1},"2d9f00":{"css":1},"stafftools_link":{"css":1},"setting_warning":{"css":1},"unread_count":{"css":1},"8f4f07":{"css":1},"D4F6FA":{"css":1},"78909B":{"css":1},"1D2B3D":{"css":1},"ffe3bf":{"css":1},"FD9800":{"css":1},"613A00":{"css":1},"C47500":{"css":1},"zone":{"css":1,"objective-c":1},"CC7575":{"css":1},"2a2c2e":{"css":1},"serverstats":{"css":1},"4e7fa0":{"css":1},"192e42":{"css":1},"192E42":{"css":1},"080909":{"css":1},"109px":{"css":1},"07":{"css":1},"146px":{"css":1},"unsupported":{"css":1,"objective-c":1},"feefae":{"css":1},"fae692":{"css":1},"b3a569":{"css":1},"211e14":{"css":1},"ie":{"css":1},"38px":{"css":1},"48px":{"css":1},"968a59":{"css":1},"fef8db":{"css":1},"f2e4ab":{"css":1},"fef6d1":{"css":1},"f1e1a2":{"css":1},"homehead":{"css":1},"hero":{"css":1},"839ba9":{"css":1},"textographic":{"css":1},"23566d":{"css":1},"e7eef1":{"css":1},"home":{"css":1},"search_icon":{"css":1},"86f9473e":{"css":1},"logos":{"css":1},"definitions":{"css":1,"shell":1},"Palatino":{"css":1},"Georgia":{"css":1},"Times":{"css":1},"Roman":{"css":1},"signup":{"css":1},"entice":{"css":1},"bed7e1":{"css":1},"50b7d1":{"css":1},"286da3":{"css":1},"51a0b3":{"css":1},"66c7e5":{"css":1},"328fc9":{"css":1},"c8ecff":{"css":1},"iphone":{"css":1},"posts":{"css":1},"320px":{"css":1},"issues":{"css":1,"html":1},"changes":{"css":1,"python":1},"309c00":{"css":1},"manager":{"css":1},"labelform":{"css":1},"cooser":{"css":1},"2466a7":{"css":1},"banner":{"css":1},"closed_pattern":{"css":1},"7e6ded3d":{"css":1},"merged":{"css":1},"fffa5d":{"css":1},"issues_next":{"css":1},"dropdown":{"css":1},"f9f9f9":{"css":1},"c6c6c6":{"css":1},"yours":{"css":1},"fcff00":{"css":1},"back":{"css":1,"objective-c":1,"python":1},"states":{"css":1,"python":1},"fffbb8":{"css":1},"135px":{"css":1},"percent":{"css":1,"objective-c":1,"python":1},"small_notice":{"css":1},"pastdue":{"css":1},"e2e2e2":{"css":1},"8dcf16":{"css":1},"65bd10":{"css":1},"milestones":{"css":1},"repohead":{"css":1},"730px":{"css":1},"js":{"css":1,"html":1},"templates":{"css":1},"reponame":{"css":1},"B9B9B9":{"css":1},"e9dba8":{"css":1},"suggestion":{"css":1},"34631a":{"css":1},"upgrade":{"css":1},"cc":{"css":1},"changed":{"css":1,"objective-c":1},"insertions":{"css":1},"deletions":{"css":1},"evented":{"css":1},"thread":{"css":1,"html":1},"ff9933":{"css":1},"massive":{"css":1},"sentence":{"css":1},"overall":{"css":1},"flag":{"css":1},"e9dba5":{"css":1},"66px":{"css":1},"640px":{"css":1},"bars":{"css":1},"security":{"css":1,"html":1},"42px":{"css":1},"E80C02":{"css":1},"FF9E00":{"css":1},"audit":{"css":1},"application":{"css":1,"html":1,"javascript":1,"python":1},"c54242":{"css":1},"72px":{"css":1},"bababa":{"css":1},"tips":{"css":1},"app":{"css":1},"almost":{"css":1,"html":1},"deploy":{"css":1},"90D35B":{"css":1},"C52323":{"css":1},"43px":{"css":1},"modal":{"css":1},"checkmark":{"css":1},"DOCTYPE":{"html":1},"og":{"html":1},"ogp":{"html":1},"me":{"html":1,"ruby":1},"ns":{"html":1},"fb":{"html":1},"githubog":{"html":1},"charset":{"html":1,"javascript":1,"python":1},"utf":{"html":1,"javascript":1,"objective-c":1,"python":1},"equiv":{"html":1},"UA":{"html":1},"Compatible":{"html":1},"IE":{"html":1,"javascript":1},"edge":{"html":1},"Search":{"html":1},"xml":{"html":1,"javascript":1},"rel":{"html":1,"python":1},"opensearchdescription":{"html":1},"href":{"html":1},"opensearch":{"html":1},"GitHub":{"html":1},"fluid":{"html":1},"fluidicon":{"html":1},"precomposed":{"html":1},"sizes":{"html":1},"57x57":{"html":1},"114x114":{"html":1},"72x72":{"html":1},"144x144":{"html":1},"msapplication":{"html":1},"TileImage":{"html":1},"tile":{"html":1},"TileColor":{"html":1},"favicon":{"html":1},"ico":{"html":1},"authenticity_token":{"html":1},"csrf":{"html":1},"param":{"html":1,"javascript":1,"python":1,"shell":1},"2sqFFESbhj36oU":{"html":1},"zClm7KsUIFlMcCOpDHQmV5UxK4fE":{"html":1},"26581c8456a7088e423db87d6ed68794e9042e29":{"html":1},"stylesheet":{"html":1},"github2":{"html":1},"38ac9c88be26119b09e2a8dbf21887c7e34791e1":{"html":1},"script":{"html":1,"shell":1},"frameworks":{"html":1},"57542e0cba19d068168099f287c117efa142863c":{"html":1},"javascript":{"html":1},"81433815e4751f68e04d42ec948cba14ab028c2d":{"html":1},"logged_in":{"html":1},"env":{"html":1,"shell":1},"production":{"html":1},"logov7":{"html":1},"tooltipped":{"html":1},"downwards":{"html":1},"You":{"html":1,"objective-c":1,"ruby":1},"UTF":{"html":1,"objective-c":1,"python":1},"command_bar_form":{"html":1},"method":{"html":1,"javascript":1,"objective-c":1,"python":1,"ruby":1},"advanced_search":{"html":1},"Advanced":{"html":1},"Command":{"html":1,"ruby":1},"tabindex":{"html":1},"username":{"html":1,"shell":1},"visionmedia":{"html":1},"autocapitalize":{"html":1},"Show":{"html":1},"Bar":{"html":1},"Help":{"html":1,"ruby":1},"Explore":{"html":1},"Gist":{"html":1},"blog":{"html":1},"Blog":{"html":1},"f1e3ab214a976a39cfd713bc93deb10f":{"html":1},"amp":{"html":1},"2Fimages":{"html":1},"2Fgravatars":{"html":1},"2Fgravatar":{"html":1},"new_repo":{"html":1},"Repo":{"html":1},"account_settings":{"html":1},"Account":{"html":1},"Settings":{"html":1},"post":{"html":1,"javascript":1,"shell":1},"Sign":{"html":1},"Out":{"html":1},"Results":{"html":1},"explore_main":{"html":1},"explore_repos":{"html":1},"Repositories":{"html":1},"languages":{"html":1},"explore_languages":{"html":1},"Languages":{"html":1},"timeline":{"html":1},"explore_timeline":{"html":1},"Timeline":{"html":1},"explore_search":{"html":1},"search_repos":{"html":1},"search_form":{"html":1},"type_value":{"html":1},"repo_value":{"html":1},"start_value":{"html":1},"Users":{"html":1},"Code":{"html":1,"objective-c":1,"python":1,"ruby":1},"Language":{"html":1},"Any":{"html":1,"python":1},"Popular":{"html":1},"ActionScript":{"html":1},"C":{"html":1,"objective-c":1,"ruby":1},"Common":{"html":1},"Lisp":{"html":1},"CSS":{"html":1},"Diff":{"html":1},"Emacs":{"html":1},"Erlang":{"html":1},"Haskell":{"html":1},"HTML":{"html":1},"Java":{"html":1},"JavaScript":{"html":1},"Lua":{"html":1},"Objective":{"html":1,"objective-c":1},"Perl":{"html":1},"PHP":{"html":1},"Python":{"html":1,"python":1},"Ruby":{"html":1},"Scala":{"html":1},"Scheme":{"html":1},"TeX":{"html":1},"XML":{"html":1},"Ada":{"html":1},"Apex":{"html":1},"AppleScript":{"html":1},"Arc":{"html":1},"Arduino":{"html":1},"ASP":{"html":1},"Assembly":{"html":1},"Augeas":{"html":1},"AutoHotkey":{"html":1},"Batchfile":{"html":1},"Befunge":{"html":1},"BlitzMax":{"html":1},"Boo":{"html":1},"Brainfuck":{"html":1},"Bro":{"html":1},"ObjDump":{"html":1},"C2hs":{"html":1},"Ceylon":{"html":1},"ChucK":{"html":1},"Clojure":{"html":1},"CMake":{"html":1},"CoffeeScript":{"html":1},"ColdFusion":{"html":1},"Coq":{"html":1},"Cpp":{"html":1},"Cucumber":{"html":1},"Cython":{"html":1},"D":{"html":1},"Darcs":{"html":1},"Patch":{"html":1},"Dart":{"html":1},"DCPU":{"html":1},"ASM":{"html":1},"Delphi":{"html":1},"Dylan":{"html":1},"eC":{"html":1},"Ecere":{"html":1},"Projects":{"html":1},"Ecl":{"html":1},"Eiffel":{"html":1},"Elixir":{"html":1},"F":{"html":1,"objective-c":1,"shell":1},"Factor":{"html":1},"Fancy":{"html":1},"Fantom":{"html":1},"FORTRAN":{"html":1},"GAS":{"html":1},"Genshi":{"html":1},"Gentoo":{"html":1},"Ebuild":{"html":1},"Eclass":{"html":1},"Go":{"html":1},"Gosu":{"html":1},"Groff":{"html":1},"Groovy":{"html":1},"Server":{"html":1,"python":1},"Pages":{"html":1},"Haml":{"html":1},"HaXe":{"html":1},"Django":{"html":1},"ERB":{"html":1},"INI":{"html":1},"Io":{"html":1},"Ioke":{"html":1},"IRC":{"html":1},"Julia":{"html":1},"Kotlin":{"html":1},"LilyPond":{"html":1},"Literate":{"html":1},"LLVM":{"html":1},"Logtalk":{"html":1},"Makefile":{"html":1},"Mako":{"html":1},"Markdown":{"html":1},"Matlab":{"html":1},"Max":{"html":1},"Mirah":{"html":1},"Moocode":{"html":1},"mupad":{"html":1},"Myghty":{"html":1},"Nemerle":{"html":1},"Nimrod":{"html":1},"Nu":{"html":1},"NumPy":{"html":1},"OCaml":{"html":1},"ooc":{"html":1},"Opa":{"html":1},"OpenCL":{"html":1},"OpenEdge":{"html":1},"ABL":{"html":1},"Parrot":{"html":1},"Internal":{"html":1,"objective-c":1},"Representation":{"html":1},"PowerShell":{"html":1},"Puppet":{"html":1},"Pure":{"html":1},"Racket":{"html":1},"Raw":{"html":1},"Rebol":{"html":1},"Redcode":{"html":1},"reStructuredText":{"html":1},"RHTML":{"html":1},"Rust":{"html":1},"Sage":{"html":1},"Sass":{"html":1},"Scilab":{"html":1},"SCSS":{"html":1},"Self":{"html":1},"Shell":{"html":1},"Smalltalk":{"html":1},"Smarty":{"html":1},"Standard":{"html":1,"objective-c":1},"ML":{"html":1},"SuperCollider":{"html":1},"Tcl":{"html":1},"Tcsh":{"html":1},"Tea":{"html":1},"Textile":{"html":1},"Turing":{"html":1},"Twig":{"html":1},"Vala":{"html":1},"Verilog":{"html":1},"VHDL":{"html":1},"VimL":{"html":1},"Visual":{"html":1},"Basic":{"html":1},"XQuery":{"html":1},"XS":{"html":1},"XSLT":{"html":1},"YAML":{"html":1},"valign":{"html":1},"TouchCode":{"html":1},"TouchXML":{"html":1},"Official":{"html":1},"quot":{"html":1},"KB":{"html":1},"forks":{"html":1},"months":{"html":1},"robbiehanson":{"html":1},"KissXML":{"html":1},"replacement":{"html":1,"objective-c":1},"Cocoa":{"html":1,"objective-c":1},"NSXML":{"html":1},"cluster":{"html":1},"classes":{"html":1,"objective-c":1},"Based":{"html":1},"libxml":{"html":1},"Works":{"html":1},"iOS":{"html":1,"objective-c":1},"ZaBlanc":{"html":1},"RaptureXML":{"html":1},"sensible":{"html":1},"API":{"html":1,"javascript":1},"Mac":{"html":1},"development":{"html":1},"Leonidas":{"html":1},"XIV":{"html":1},"xml2js":{"html":1},"converter":{"html":1,"objective-c":1},"bcaccinolo":{"html":1},"NSDictionary":{"html":1,"objective-c":1},"iPhone":{"html":1},"more_link":{"html":1},"raquo":{"html":1},"008":{"html":1},"2ca7247fde7f8347eff5b5acf91804e5":{"html":1},"02c99dc465e883e3f8b29fcdb6341fb2":{"html":1},"xmlwerks":{"html":1},"Hank":{"html":1},"Ratzesberger":{"html":1},"located":{"html":1},"California":{"html":1},"USA":{"html":1},"1bb69e484338161dec481e117d4aec80":{"html":1},"xmly":{"html":1},"215f1ef5c917cdf83687f5c9942044ca":{"html":1},"xmlu":{"html":1},"Xiao":{"html":1},"Ming":{"html":1},"Lu":{"html":1},"465fcf60b799db7b9367c66ce8e740c6":{"html":1},"xml5":{"html":1},"br":{"html":1},"Source":{"html":1},"eed3si9n":{"html":1},"scalaxb":{"html":1},"97924b263cda2d062c23934a261104cf5642b200":{"html":1},"cli":{"html":1},"src_generated":{"html":1},"wsdl20":{"html":1},"xmlprotocol":{"html":1},"scala":{"html":1},"import":{"html":1,"objective-c":1,"python":1},"_":{"html":1,"ruby":1},"Foo":{"html":1},"michifunk":{"html":1},"sample_app2":{"html":1},"355aaa587daed4c4bfdbd4000f2a7f50c06232e0":{"html":1},"gems":{"html":1},"nokogiri":{"html":1},"x86":{"html":1},"mingw32":{"html":1},"ext":{"html":1},"xml_node":{"html":1},"lt":{"html":1},"_node":{"html":1},"ID":{"html":1},"decorate":{"html":1},"decorate_bang":{"html":1},"DEBUG":{"html":1},"debug_node_dealloc":{"html":1},"package":{"html":1},"NodeSeq":{"html":1},"NamespaceBinding":{"html":1},"Elem":{"html":1},"Unprefixed":{"html":1},"sshwsfc":{"html":1},"apf":{"html":1},"712e9e66a748acf9883ac459b435ec0e817ebb92":{"html":1},"core":{"html":1,"python":1},"lib":{"html":1},"xmldb":{"html":1},"FSF":{"html":1},"fsf":{"html":1},"__WITH_XMLDATABASE":{"html":1},"2af79d8e58cc515841f322ac4f215a68fc1327c4":{"html":1},"databinding":{"html":1},"_XMLDATABASE":{"html":1},"unbind":{"html":1},"window":{"html":1,"javascript":1},"database":{"html":1},"hack":{"html":1,"objective-c":1,"shell":1},"Links":{"html":1},"About":{"html":1},"features":{"html":1},"Features":{"html":1},"Contact":{"html":1},"Support":{"html":1,"python":1},"training":{"html":1},"Training":{"html":1},"Enterprise":{"html":1},"Site":{"html":1},"Status":{"html":1,"python":1},"Clients":{"html":1},"Windows":{"html":1},"eclipse":{"html":1},"Eclipse":{"html":1},"mobile":{"html":1},"Mobile":{"html":1},"Apps":{"html":1},"Tools":{"html":1},"gaug":{"html":1},"es":{"html":1,"objective-c":1},"Gauges":{"html":1},"Web":{"html":1},"analytics":{"html":1},"speakerdeck":{"html":1},"Speaker":{"html":1},"Deck":{"html":1},"Presentations":{"html":1},"snippets":{"html":1},"Extras":{"html":1},"Job":{"html":1},"Board":{"html":1},"shop":{"html":1},"Shop":{"html":1},"octodex":{"html":1},"Octodex":{"html":1},"Documentation":{"html":1},"Developer":{"html":1},"flavored":{"html":1},"Flavored":{"html":1},"pages":{"html":1},"terms":{"html":1,"objective-c":1},"Terms":{"html":1},"Service":{"html":1},"privacy":{"html":1},"Privacy":{"html":1},"Security":{"html":1},"37470s":{"html":1},"fe1":{"html":1},"rs":{"html":1},"All":{"html":1,"objective-c":1,"python":1},"reserved":{"html":1,"objective-c":1},"legal_ie":{"html":1},"keyboard_shortcuts_pane":{"html":1},"instapaper_ignore":{"html":1},"readability":{"html":1},"Keyboard":{"html":1},"Shortcuts":{"html":1},"wide":{"html":1},"Focus":{"html":1},"Bring":{"html":1},"dialog":{"html":1},"Commit":{"html":1},"enter":{"html":1},"Open":{"html":1},"Expand":{"html":1},"canonical":{"html":1},"Pull":{"html":1},"ctrl":{"html":1},"Submit":{"html":1},"shift":{"html":1,"javascript":1},"Preview":{"html":1},"Issues":{"html":1},"Toggle":{"html":1},"Back":{"html":1},"inbox":{"html":1},"Dashboard":{"html":1},"Network":{"html":1},"Graph":{"html":1},"Scroll":{"html":1},"way":{"html":1,"objective-c":1,"shell":1},"Browsing":{"html":1},"Activates":{"html":1},"finder":{"html":1},"Jump":{"html":1},"Switch":{"html":1},"Commits":{"html":1},"escape":{"html":1,"objective-c":1},"Parent":{"html":1},"Other":{"html":1},"Notifications":{"html":1},"Mark":{"html":1},"Mute":{"html":1},"Cheat":{"html":1},"Sheet":{"html":1},"Format":{"html":1},"Text":{"html":1},"styles":{"html":1},"_This":{"html":1},"also":{"html":1,"javascript":1},"italic_":{"html":1},"__This":{"html":1},"bold__":{"html":1},"combine":{"html":1},"them":{"html":1,"objective-c":1,"shell":1},"Lists":{"html":1},"Unordered":{"html":1},"Item":{"html":1},"2a":{"html":1},"2b":{"html":1},"Ordered":{"html":1},"3a":{"html":1},"3b":{"html":1},"Miscellaneous":{"html":1},"Images":{"html":1},"Logo":{"html":1},"Alt":{"html":1},"automatic":{"html":1},"Blockquotes":{"html":1},"Kanye":{"html":1},"West":{"html":1},"said":{"html":1,"objective-c":1},"living":{"html":1},"future":{"html":1},"present":{"html":1,"ruby":1},"our":{"html":1,"objective-c":1,"shell":1},"past":{"html":1},"Examples":{"html":1,"javascript":1,"ruby":1,"shell":1},"Syntax":{"html":1},"highlighting":{"html":1},"_blank":{"html":1},"GFM":{"html":1},"function":{"html":1,"javascript":1,"objective-c":1,"shell":1},"fancyAlert":{"html":1},"foo":{"html":1,"python":1,"ruby":1,"shell":1},"Or":{"html":1,"javascript":1},"your":{"html":1,"shell":1},"spaces":{"html":1,"objective-c":1},"Here":{"html":1,"shell":1},"syntax":{"html":1,"ruby":1},"def":{"html":1,"python":1,"ruby":1},"Inline":{"html":1},"think":{"html":1},"you":{"html":1,"javascript":1,"objective-c":1,"python":1,"shell":1},"addr":{"html":1},"element":{"html":1},"instead":{"html":1,"objective-c":1,"python":1},"flash":{"html":1},"Something":{"html":1},"went":{"html":1},"Please":{"html":1},"again":{"html":1,"objective-c":1,"ruby":1},"Looking":{"html":1},"s3":{"html":1},"amazonaws":{"html":1},"GitHub_Logos":{"html":1},"Github_logo":{"html":1},"about_page":{"html":1},"github_logo":{"html":1},"Download":{"html":1},"Octocat":{"html":1},"Octocats":{"html":1},"server_response_time":{"html":1},"host":{"html":1,"objective-c":1},"Module":{"javascript":1},"dependencies":{"javascript":1},"Emitter":{"javascript":1},"require":{"javascript":1,"objective-c":1,"ruby":1},"emitter":{"javascript":1},"Root":{"javascript":1},"iframes":{"javascript":1},"root":{"javascript":1},"undefined":{"javascript":1,"objective-c":1},"typeof":{"javascript":1,"objective-c":1},"Noop":{"javascript":1},"noop":{"javascript":1},"Determine":{"javascript":1},"XHR":{"javascript":1},"getXHR":{"javascript":1},"XMLHttpRequest":{"javascript":1},"protocol":{"javascript":1,"python":1},"ActiveXObject":{"javascript":1},"XMLHTTP":{"javascript":1},"Msxml2":{"javascript":1},"Removes":{"javascript":1,"ruby":1},"leading":{"javascript":1,"shell":1},"whitespace":{"javascript":1},"support":{"javascript":1,"objective-c":1,"python":1},"api":{"javascript":1},"trim":{"javascript":1,"shell":1},"Boolean":{"javascript":1},"isObject":{"javascript":1},"Serialize":{"javascript":1},"serialize":{"javascript":1,"objective-c":1},"pairs":{"javascript":1},"encodeURIComponent":{"javascript":1},"join":{"javascript":1,"python":1,"ruby":1},"Expose":{"javascript":1},"serialization":{"javascript":1},"serializeObject":{"javascript":1,"objective-c":1},"urlencoded":{"javascript":1,"python":1},"parseString":{"javascript":1},"split":{"javascript":1,"python":1,"ruby":1},"decodeURIComponent":{"javascript":1},"Default":{"javascript":1,"objective-c":1,"ruby":1},"MIME":{"javascript":1},"map":{"javascript":1,"python":1,"ruby":1},"superagent":{"javascript":1},"json":{"javascript":1,"python":1},"generated":{"javascript":1},"JSON":{"javascript":1,"objective-c":1,"python":1},"stringify":{"javascript":1},"parsers":{"javascript":1},"parsed":{"javascript":1,"objective-c":1,"python":1,"ruby":1,"shell":1},"containing":{"javascript":1,"python":1},"mapped":{"javascript":1},"parseHeader":{"javascript":1},"lines":{"javascript":1,"python":1,"shell":1},"pop":{"javascript":1,"objective-c":1,"python":1},"indexOf":{"javascript":1},"slice":{"javascript":1},"toLowerCase":{"javascript":1},"parameters":{"javascript":1,"python":1,"shell":1},"params":{"javascript":1,"python":1},"reduce":{"javascript":1},"Response":{"javascript":1,"python":1},"xhr":{"javascript":1},"flags":{"javascript":1,"objective-c":1},"ok":{"javascript":1,"python":1,"shell":1},"Aliasing":{"javascript":1},"nice":{"javascript":1},"promise":{"javascript":1},"like":{"javascript":1,"objective-c":1,"python":1,"shell":1},"pass":{"javascript":1,"python":1},"callbacks":{"javascript":1},"res":{"javascript":1},"Sending":{"javascript":1},"chained":{"javascript":1},"send":{"javascript":1,"python":1},"passed":{"javascript":1,"python":1,"ruby":1},"further":{"javascript":1},"reduced":{"javascript":1},"call":{"javascript":1,"objective-c":1,"ruby":1},"cases":{"javascript":1,"objective-c":1},"XMLHTTPRequest":{"javascript":1},"responseText":{"javascript":1},"setStatusProperties":{"javascript":1},"getAllResponseHeaders":{"javascript":1},"setHeaderProperties":{"javascript":1},"parseBody":{"javascript":1},"related":{"javascript":1,"objective-c":1},"properties":{"javascript":1},"response":{"javascript":1,"python":1},"provide":{"javascript":1},"prototype":{"javascript":1},"Used":{"javascript":1},"parsing":{"javascript":1,"objective-c":1,"ruby":1},"bodies":{"javascript":1},"Parsers":{"javascript":1},"defined":{"javascript":1,"objective-c":1,"shell":1},"Mixed":{"javascript":1},"such":{"javascript":1,"ruby":1,"shell":1},"For":{"javascript":1,"objective-c":1,"python":1,"ruby":1},"2xx":{"javascript":1},"give":{"javascript":1,"shell":1},"__true__":{"javascript":1},"whereas":{"javascript":1},"5xx":{"javascript":1},"__false__":{"javascript":1},"clientError":{"javascript":1},"serverError":{"javascript":1},"available":{"javascript":1,"python":1,"shell":1},"specific":{"javascript":1,"objective-c":1,"shell":1},"statusType":{"javascript":1},"ranging":{"javascript":1},"sometimes":{"javascript":1,"shell":1},"useful":{"javascript":1},"mapping":{"javascript":1,"python":1},"respond":{"javascript":1,"objective-c":1},"colors":{"javascript":1},"sugar":{"javascript":1},"common":{"javascript":1},"Currently":{"javascript":1},"providing":{"javascript":1},"noContent":{"javascript":1},"badRequest":{"javascript":1},"unauthorized":{"javascript":1},"notAcceptable":{"javascript":1},"notFound":{"javascript":1},"Number":{"javascript":1},"basics":{"javascript":1},"accepted":{"javascript":1},"forbidden":{"javascript":1},"representative":{"javascript":1},"toError":{"javascript":1},"Request":{"javascript":1,"python":1},"_query":{"javascript":1},"Requested":{"javascript":1},"With":{"javascript":1},"Inherit":{"javascript":1},"timeout":{"javascript":1,"python":1},"chaining":{"javascript":1},"_timeout":{"javascript":1},"Clear":{"javascript":1},"previous":{"javascript":1},"clearTimeout":{"javascript":1},"_timer":{"javascript":1},"Abort":{"javascript":1},"potential":{"javascript":1},"aborted":{"javascript":1},"emit":{"javascript":1},"multiple":{"javascript":1},"req":{"javascript":1},"Accept":{"javascript":1,"python":1},"Key":{"javascript":1,"objective-c":1},"foobar":{"javascript":1},"values":{"javascript":1,"objective-c":1,"python":1,"shell":1},"xmlstring":{"javascript":1},"Add":{"javascript":1,"objective-c":1,"python":1,"ruby":1},"shoes":{"javascript":1},"Send":{"javascript":1,"python":1},"defaulting":{"javascript":1},"when":{"javascript":1,"objective-c":1,"python":1,"ruby":1},"querystring":{"javascript":1,"python":1},"writes":{"javascript":1,"shell":1},"order":{"javascript":1,"objective-c":1},"defaults":{"javascript":1,"python":1,"ruby":1},"tobi":{"javascript":1},"species":{"javascript":1},"ferret":{"javascript":1},"_data":{"javascript":1},"handle":{"javascript":1,"objective-c":1},"arity":{"javascript":1},"_callback":{"javascript":1},"Initiate":{"javascript":1},"invoking":{"javascript":1},"instanceof":{"javascript":1},"store":{"javascript":1,"objective-c":1},"change":{"javascript":1,"objective-c":1},"onreadystatechange":{"javascript":1},"readyState":{"javascript":1},"setTimeout":{"javascript":1},"initiate":{"javascript":1},"GET":{"javascript":1,"python":1},"HEAD":{"javascript":1,"python":1},"stuff":{"javascript":1},"setRequestHeader":{"javascript":1},"Issue":{"javascript":1,"objective-c":1},"users":{"javascript":1},"arguments":{"javascript":1,"objective-c":1,"ruby":1,"shell":1},"DELETE":{"javascript":1},"PATCH":{"javascript":1},"patch":{"javascript":1},"POST":{"javascript":1,"python":1},"PUT":{"javascript":1},"put":{"javascript":1},"module":{"javascript":1,"python":1,"ruby":1},"exports":{"javascript":1},"JSONKit":{"objective-c":1},"johnezang":{"objective-c":1},"Dual":{"objective-c":1},"licensed":{"objective-c":1},"either":{"objective-c":1},"BSD":{"objective-c":1},"alternatively":{"objective-c":1},"Apache":{"objective-c":1},"specified":{"objective-c":1,"python":1,"shell":1},"below":{"objective-c":1},"John":{"objective-c":1},"Engelhart":{"objective-c":1},"Redistribution":{"objective-c":1},"binary":{"objective-c":1},"forms":{"objective-c":1},"modification":{"objective-c":1},"permitted":{"objective-c":1},"provided":{"objective-c":1,"python":1},"met":{"objective-c":1},"Redistributions":{"objective-c":1},"retain":{"objective-c":1},"disclaimer":{"objective-c":1},"reproduce":{"objective-c":1},"materials":{"objective-c":1},"distribution":{"objective-c":1},"Neither":{"objective-c":1},"Zang":{"objective-c":1},"Industries":{"objective-c":1},"nor":{"objective-c":1,"shell":1},"names":{"objective-c":1,"python":1,"ruby":1,"shell":1},"may":{"objective-c":1,"ruby":1},"used":{"objective-c":1,"ruby":1},"endorse":{"objective-c":1},"promote":{"objective-c":1},"products":{"objective-c":1},"derived":{"objective-c":1},"prior":{"objective-c":1},"THIS":{"objective-c":1},"BY":{"objective-c":1},"CONTRIBUTORS":{"objective-c":1},"ARE":{"objective-c":1},"DISCLAIMED":{"objective-c":1},"OWNER":{"objective-c":1},"DIRECT":{"objective-c":1},"INDIRECT":{"objective-c":1},"INCIDENTAL":{"objective-c":1},"SPECIAL":{"objective-c":1},"EXEMPLARY":{"objective-c":1},"CONSEQUENTIAL":{"objective-c":1},"PROCUREMENT":{"objective-c":1},"SUBSTITUTE":{"objective-c":1},"GOODS":{"objective-c":1},"SERVICES":{"objective-c":1},"LOSS":{"objective-c":1},"DATA":{"objective-c":1},"PROFITS":{"objective-c":1},"BUSINESS":{"objective-c":1},"INTERRUPTION":{"objective-c":1},"HOWEVER":{"objective-c":1},"CAUSED":{"objective-c":1},"ON":{"objective-c":1},"THEORY":{"objective-c":1},"STRICT":{"objective-c":1},"NEGLIGENCE":{"objective-c":1},"WAY":{"objective-c":1},"EVEN":{"objective-c":1},"IF":{"objective-c":1},"ADVISED":{"objective-c":1},"POSSIBILITY":{"objective-c":1},"SUCH":{"objective-c":1},"DAMAGE":{"objective-c":1},"Licensed":{"objective-c":1},"except":{"objective-c":1,"python":1},"compliance":{"objective-c":1},"obtain":{"objective-c":1},"apache":{"objective-c":1},"licenses":{"objective-c":1},"LICENSE":{"objective-c":1},"Unless":{"objective-c":1},"applicable":{"objective-c":1},"law":{"objective-c":1},"agreed":{"objective-c":1},"writing":{"objective-c":1},"distributed":{"objective-c":1},"BASIS":{"objective-c":1},"CONDITIONS":{"objective-c":1},"express":{"objective-c":1},"implied":{"objective-c":1},"governing":{"objective-c":1},"permissions":{"objective-c":1},"limitations":{"objective-c":1},"Acknowledgments":{"objective-c":1},"bulk":{"objective-c":1},"UTF32":{"objective-c":1},"conversion":{"objective-c":1},"verification":{"objective-c":1},"comes":{"objective-c":1},"ConvertUTF":{"objective-c":1},"hc":{"objective-c":1},"It":{"objective-c":1,"python":1},"has":{"objective-c":1,"python":1},"original":{"objective-c":1,"python":1,"ruby":1},"sources":{"objective-c":1},"were":{"objective-c":1,"python":1,"ruby":1},"obtained":{"objective-c":1},"unicode":{"objective-c":1,"python":1},"However":{"objective-c":1},"web":{"objective-c":1,"shell":1},"seems":{"objective-c":1},"Instead":{"objective-c":1},"Unicode":{"objective-c":1},"FAQ":{"objective-c":1},"faq":{"objective-c":1},"utf_bom":{"objective-c":1},"gen4":{"objective-c":1},"points":{"objective-c":1},"International":{"objective-c":1},"Components":{"objective-c":1},"ICU":{"objective-c":1},"icu":{"objective-c":1},"project":{"objective-c":1},"how":{"objective-c":1},"decision":{"objective-c":1},"ch":{"objective-c":1},"was":{"objective-c":1,"python":1,"shell":1},"made":{"objective-c":1},"leverage":{"objective-c":1},"proven":{"objective-c":1},"Hopefully":{"objective-c":1},"local":{"objective-c":1,"shell":1},"modifications":{"objective-c":1},"bug":{"objective-c":1},"isValidCodePoint":{"objective-c":1},"macros":{"objective-c":1},"U_IS_UNICODE_NONCHAR":{"objective-c":1},"U_IS_UNICODE_CHAR":{"objective-c":1},"From":{"objective-c":1},"Disclaimer":{"objective-c":1},"claims":{"objective-c":1},"fitness":{"objective-c":1},"particular":{"objective-c":1},"warranties":{"objective-c":1},"expressed":{"objective-c":1},"recipient":{"objective-c":1},"agrees":{"objective-c":1},"determine":{"objective-c":1,"shell":1},"applicability":{"objective-c":1},"purchased":{"objective-c":1},"magnetic":{"objective-c":1},"optical":{"objective-c":1},"sole":{"objective-c":1},"remedy":{"objective-c":1},"claim":{"objective-c":1},"exchange":{"objective-c":1},"defective":{"objective-c":1},"receipt":{"objective-c":1},"Limitations":{"objective-c":1},"Rights":{"objective-c":1},"Redistribute":{"objective-c":1},"grants":{"objective-c":1},"freely":{"objective-c":1},"supplied":{"objective-c":1,"python":1},"creation":{"objective-c":1},"supporting":{"objective-c":1},"make":{"objective-c":1,"python":1},"internal":{"objective-c":1,"python":1},"remains":{"objective-c":1},"attached":{"objective-c":1},"errno":{"objective-c":1},"math":{"objective-c":1},"limits":{"objective-c":1},"objc":{"objective-c":1},"runtime":{"objective-c":1,"shell":1},"CoreFoundation":{"objective-c":1},"CFString":{"objective-c":1},"CFArray":{"objective-c":1},"CFDictionary":{"objective-c":1},"CFNumber":{"objective-c":1},"Foundation":{"objective-c":1},"NSArray":{"objective-c":1},"NSAutoreleasePool":{"objective-c":1},"NSData":{"objective-c":1},"NSException":{"objective-c":1},"NSNull":{"objective-c":1},"NSObjCRuntime":{"objective-c":1},"__has_feature":{"objective-c":1},"JK_ENABLE_CF_TRANSFER_OWNERSHIP_CALLBACKS":{"objective-c":1},"v1":{"objective-c":1},"valid":{"objective-c":1,"ruby":1,"shell":1},"__OBJC_GC__":{"objective-c":1},"does":{"objective-c":1,"ruby":1,"shell":1},"Garbage":{"objective-c":1},"Collection":{"objective-c":1},"objc_arc":{"objective-c":1},"Automatic":{"objective-c":1},"Reference":{"objective-c":1},"Counting":{"objective-c":1},"ARC":{"objective-c":1},"technically":{"objective-c":1},"few":{"objective-c":1},"problems":{"objective-c":1},"strictly":{"objective-c":1},"C99":{"objective-c":1},"conforming":{"objective-c":1},"standpoint":{"objective-c":1},"though":{"objective-c":1},"they":{"objective-c":1,"ruby":1},"pedantic":{"objective-c":1},"nitpicking":{"objective-c":1},"variety":{"objective-c":1},"practice":{"objective-c":1},"compilers":{"objective-c":1},"architectures":{"objective-c":1},"reasonably":{"objective-c":1},"compiled":{"objective-c":1},"these":{"objective-c":1},"nitpicks":{"objective-c":1},"aren":{"objective-c":1},"problem":{"objective-c":1},"Since":{"objective-c":1},"limited":{"objective-c":1},"what":{"objective-c":1,"python":1},"processor":{"objective-c":1},"nearly":{"objective-c":1},"UINT_MAX":{"objective-c":1},"0xffffffffU":{"objective-c":1},"INT_MIN":{"objective-c":1},"0x7fffffff":{"objective-c":1},"ULLONG_MAX":{"objective-c":1},"0xffffffffffffffffULL":{"objective-c":1},"LLONG_MIN":{"objective-c":1},"0x7fffffffffffffffLL":{"objective-c":1},"1LL":{"objective-c":1},"requires":{"objective-c":1},"bits":{"objective-c":1},"respectively":{"objective-c":1},"__LP64__":{"objective-c":1},"ULONG_MAX":{"objective-c":1},"INT_MAX":{"objective-c":1},"LONG_MAX":{"objective-c":1},"LONG_MIN":{"objective-c":1},"WORD_BIT":{"objective-c":1},"LONG_BIT":{"objective-c":1},"same":{"objective-c":1,"ruby":1},"bit":{"objective-c":1,"shell":1},"uses":{"objective-c":1},"NS":{"objective-c":1},"lot":{"objective-c":1},"sure":{"objective-c":1},"something":{"objective-c":1},"expecting":{"objective-c":1},"compatible":{"objective-c":1},"ssize_t":{"objective-c":1},"NSUIntegerMax":{"objective-c":1},"NSIntegerMax":{"objective-c":1},"NSIntegerMin":{"objective-c":1},"NSInteger":{"objective-c":1},"NSUInteger":{"objective-c":1},"SIZE_MAX":{"objective-c":1},"SSIZE_MAX":{"objective-c":1},"DJB":{"objective-c":1},"hash":{"objective-c":1,"ruby":1},"JK_HASH_INIT":{"objective-c":1},"1402737925UL":{"objective-c":1},"Use":{"objective-c":1,"python":1,"ruby":1},"__builtin_clz":{"objective-c":1},"trailingBytesForUTF8":{"objective-c":1},"lookup":{"objective-c":1},"JK_FAST_TRAILING_BYTES":{"objective-c":1},"JK_CACHE_SLOTS":{"objective-c":1},"power":{"objective-c":1,"python":1},"slots":{"objective-c":1},"JK_CACHE_SLOTS_BITS":{"objective-c":1},"1UL":{"objective-c":1},"JK_CACHE_PROBES":{"objective-c":1},"probe":{"objective-c":1},"4UL":{"objective-c":1},"JK_INIT_CACHE_AGE":{"objective-c":1},"AGE":{"objective-c":1},"JK_TOKENBUFFER_SIZE":{"objective-c":1},"stack":{"objective-c":1},"temporary":{"objective-c":1},"hold":{"objective-c":1},"contains":{"objective-c":1,"python":1,"shell":1},"escapes":{"objective-c":1},"1024UL":{"objective-c":1},"2UL":{"objective-c":1},"JK_STACK_OBJS":{"objective-c":1},"temporarily":{"objective-c":1},"storing":{"objective-c":1},"Obj":{"objective-c":1},"objects":{"objective-c":1,"python":1},"transferred":{"objective-c":1},"JK_JSONBUFFER_SIZE":{"objective-c":1},"JK_UTF8BUFFER_SIZE":{"objective-c":1},"16UL":{"objective-c":1},"JK_ENCODE_CACHE_SLOTS":{"objective-c":1},"__GNUC__":{"objective-c":1},"JK_ATTRIBUTES":{"objective-c":1},"attr":{"objective-c":1,"python":1},"__attribute__":{"objective-c":1},"__VA_ARGS__":{"objective-c":1},"JK_EXPECTED":{"objective-c":1},"cond":{"objective-c":1},"__builtin_expect":{"objective-c":1},"JK_EXPECT_T":{"objective-c":1},"1U":{"objective-c":1},"JK_EXPECT_F":{"objective-c":1},"0U":{"objective-c":1},"JK_PREFETCH":{"objective-c":1},"ptr":{"objective-c":1},"__builtin_prefetch":{"objective-c":1},"JK_STATIC_INLINE":{"objective-c":1},"__inline__":{"objective-c":1},"always_inline":{"objective-c":1},"JK_ALIGNED":{"objective-c":1},"aligned":{"objective-c":1},"JK_UNUSED_ARG":{"objective-c":1},"unused":{"objective-c":1},"JK_WARN_UNUSED":{"objective-c":1},"warn_unused_result":{"objective-c":1},"JK_WARN_UNUSED_CONST":{"objective-c":1},"JK_WARN_UNUSED_PURE":{"objective-c":1},"pure":{"objective-c":1},"JK_WARN_UNUSED_SENTINEL":{"objective-c":1},"sentinel":{"objective-c":1},"JK_NONNULL_ARGS":{"objective-c":1},"nonnull":{"objective-c":1},"JK_WARN_UNUSED_NONNULL_ARGS":{"objective-c":1},"JK_WARN_UNUSED_CONST_NONNULL_ARGS":{"objective-c":1},"JK_WARN_UNUSED_PURE_NONNULL_ARGS":{"objective-c":1},"__GNUC_MINOR__":{"objective-c":1},"JK_ALLOC_SIZE_NON_NULL_ARGS_WARN_UNUSED":{"objective-c":1},"alloc_size":{"objective-c":1},"JKArray":{"objective-c":1},"JKDictionaryEnumerator":{"objective-c":1},"JKDictionary":{"objective-c":1},"JSONNumberStateStart":{"objective-c":1},"JSONNumberStateFinished":{"objective-c":1},"JSONNumberStateError":{"objective-c":1},"JSONNumberStateWholeNumberStart":{"objective-c":1},"JSONNumberStateWholeNumberMinus":{"objective-c":1},"JSONNumberStateWholeNumberZero":{"objective-c":1},"JSONNumberStateWholeNumber":{"objective-c":1},"JSONNumberStatePeriod":{"objective-c":1},"JSONNumberStateFractionalNumberStart":{"objective-c":1},"JSONNumberStateFractionalNumber":{"objective-c":1},"JSONNumberStateExponentStart":{"objective-c":1},"JSONNumberStateExponentPlusMinus":{"objective-c":1},"JSONNumberStateExponent":{"objective-c":1},"JSONStringStateStart":{"objective-c":1},"JSONStringStateParsing":{"objective-c":1},"JSONStringStateFinished":{"objective-c":1},"JSONStringStateError":{"objective-c":1},"JSONStringStateEscape":{"objective-c":1},"JSONStringStateEscapedUnicode1":{"objective-c":1},"JSONStringStateEscapedUnicode2":{"objective-c":1},"JSONStringStateEscapedUnicode3":{"objective-c":1},"JSONStringStateEscapedUnicode4":{"objective-c":1},"JSONStringStateEscapedUnicodeSurrogate1":{"objective-c":1},"JSONStringStateEscapedUnicodeSurrogate2":{"objective-c":1},"JSONStringStateEscapedUnicodeSurrogate3":{"objective-c":1},"JSONStringStateEscapedUnicodeSurrogate4":{"objective-c":1},"JSONStringStateEscapedNeedEscapeForSurrogate":{"objective-c":1},"JSONStringStateEscapedNeedEscapedUForSurrogate":{"objective-c":1},"JKParseAcceptValue":{"objective-c":1},"JKParseAcceptComma":{"objective-c":1},"JKParseAcceptEnd":{"objective-c":1},"JKParseAcceptValueOrEnd":{"objective-c":1},"JKParseAcceptCommaOrEnd":{"objective-c":1},"JKClassUnknown":{"objective-c":1},"JKClassString":{"objective-c":1},"JKClassNumber":{"objective-c":1},"JKClassArray":{"objective-c":1},"JKClassDictionary":{"objective-c":1},"JKClassNull":{"objective-c":1},"JKManagedBufferOnStack":{"objective-c":1},"JKManagedBufferOnHeap":{"objective-c":1},"JKManagedBufferLocationMask":{"objective-c":1},"0x3":{"objective-c":1},"JKManagedBufferLocationShift":{"objective-c":1},"JKManagedBufferMustFree":{"objective-c":1},"JKFlags":{"objective-c":1},"JKManagedBufferFlags":{"objective-c":1},"JKObjectStackOnStack":{"objective-c":1},"JKObjectStackOnHeap":{"objective-c":1},"JKObjectStackLocationMask":{"objective-c":1},"JKObjectStackLocationShift":{"objective-c":1},"JKObjectStackMustFree":{"objective-c":1},"JKObjectStackFlags":{"objective-c":1},"JKTokenTypeInvalid":{"objective-c":1},"JKTokenTypeNumber":{"objective-c":1},"JKTokenTypeString":{"objective-c":1},"JKTokenTypeObjectBegin":{"objective-c":1},"JKTokenTypeObjectEnd":{"objective-c":1},"JKTokenTypeArrayBegin":{"objective-c":1},"JKTokenTypeArrayEnd":{"objective-c":1},"JKTokenTypeSeparator":{"objective-c":1},"JKTokenTypeComma":{"objective-c":1},"JKTokenTypeTrue":{"objective-c":1},"JKTokenTypeFalse":{"objective-c":1},"JKTokenTypeNull":{"objective-c":1},"JKTokenTypeWhiteSpace":{"objective-c":1},"JKTokenType":{"objective-c":1},"These":{"objective-c":1},"prime":{"objective-c":1},"assist":{"objective-c":1},"slot":{"objective-c":1},"probing":{"objective-c":1},"JKValueTypeNone":{"objective-c":1},"JKValueTypeString":{"objective-c":1},"JKValueTypeLongLong":{"objective-c":1},"JKValueTypeUnsignedLongLong":{"objective-c":1},"JKValueTypeDouble":{"objective-c":1},"JKValueType":{"objective-c":1},"JKEncodeOptionAsData":{"objective-c":1},"JKEncodeOptionAsString":{"objective-c":1},"JKEncodeOptionAsTypeMask":{"objective-c":1},"0x7":{"objective-c":1},"JKEncodeOptionCollectionObj":{"objective-c":1},"JKEncodeOptionStringObj":{"objective-c":1},"JKEncodeOptionStringObjTrimQuotes":{"objective-c":1},"JKEncodeOptionType":{"objective-c":1},"JKHash":{"objective-c":1},"JKTokenCacheItem":{"objective-c":1},"JKTokenCache":{"objective-c":1},"JKTokenValue":{"objective-c":1},"JKParseToken":{"objective-c":1},"JKPtrRange":{"objective-c":1},"JKObjectStack":{"objective-c":1},"JKBuffer":{"objective-c":1},"JKConstBuffer":{"objective-c":1},"JKConstPtrRange":{"objective-c":1},"JKRange":{"objective-c":1},"JKManagedBuffer":{"objective-c":1},"JKFastClassLookup":{"objective-c":1},"JKEncodeCache":{"objective-c":1},"JKEncodeState":{"objective-c":1},"JKObjCImpCache":{"objective-c":1},"JKHashTableEntry":{"objective-c":1},"NSNumberAllocImp":{"objective-c":1},"receiver":{"objective-c":1},"SEL":{"objective-c":1},"NSNumberInitWithUnsignedLongLongImp":{"objective-c":1},"unsigned":{"objective-c":1},"JKClassFormatterIMP":{"objective-c":1},"__BLOCKS__":{"objective-c":1},"JKClassFormatterBlock":{"objective-c":1},"formatObject":{"objective-c":1},"roundSizeUpToMultipleOf":{"objective-c":1},"keys":{"objective-c":1,"ruby":1},"CFHashCode":{"objective-c":1},"cfHashes":{"objective-c":1},"ptrRange":{"objective-c":1},"union":{"objective-c":1},"longLongValue":{"objective-c":1},"unsignedLongLongValue":{"objective-c":1},"double":{"objective-c":1,"shell":1},"doubleValue":{"objective-c":1},"cacheItem":{"objective-c":1},"tokenPtrRange":{"objective-c":1},"tokenBuffer":{"objective-c":1},"cfHash":{"objective-c":1},"items":{"objective-c":1,"python":1},"prng_lfsr":{"objective-c":1},"age":{"objective-c":1},"Class":{"objective-c":1},"NSNumberClass":{"objective-c":1},"NSNumberAlloc":{"objective-c":1},"NSNumberInitWithUnsignedLongLong":{"objective-c":1},"JKParseState":{"objective-c":1},"JKParseOptionFlags":{"objective-c":1},"parseOptionFlags":{"objective-c":1},"stringBuffer":{"objective-c":1},"atIndex":{"objective-c":1},"lineNumber":{"objective-c":1},"lineStartIndex":{"objective-c":1},"prev_atIndex":{"objective-c":1},"prev_lineNumber":{"objective-c":1},"prev_lineStartIndex":{"objective-c":1},"objectStack":{"objective-c":1},"cache":{"objective-c":1},"objCImpCache":{"objective-c":1},"NSError":{"objective-c":1},"errorIsPrev":{"objective-c":1},"BOOL":{"objective-c":1},"mutableCollections":{"objective-c":1},"stringClass":{"objective-c":1},"numberClass":{"objective-c":1},"arrayClass":{"objective-c":1},"dictionaryClass":{"objective-c":1},"nullClass":{"objective-c":1},"utf8ConversionBuffer":{"objective-c":1},"fastClassLookup":{"objective-c":1},"JKSerializeOptionFlags":{"objective-c":1},"serializeOptionFlags":{"objective-c":1},"encodeOption":{"objective-c":1},"depth":{"objective-c":1},"classFormatterDelegate":{"objective-c":1},"classFormatterSelector":{"objective-c":1},"classFormatterIMP":{"objective-c":1},"classFormatterBlock":{"objective-c":1},"interface":{"objective-c":1,"python":1},"JKSerializer":{"objective-c":1},"NSObject":{"objective-c":1},"encodeState":{"objective-c":1},"JKSERIALIZER_BLOCKS_PROTO":{"objective-c":1},"optionFlags":{"objective-c":1},"delegate":{"objective-c":1},"releaseState":{"objective-c":1},"keyHash":{"objective-c":1},"least":{"objective-c":1},"UTF16":{"objective-c":1},"typically":{"objective-c":1},"conversionOK":{"objective-c":1},"sourceExhausted":{"objective-c":1},"partial":{"objective-c":1},"character":{"objective-c":1},"but":{"objective-c":1,"python":1,"shell":1},"hit":{"objective-c":1},"targetExhausted":{"objective-c":1},"insuff":{"objective-c":1},"room":{"objective-c":1},"sourceIllegal":{"objective-c":1},"illegal":{"objective-c":1},"malformed":{"objective-c":1},"ConversionResult":{"objective-c":1},"UNI_REPLACEMENT_CHAR":{"objective-c":1},"0x0000FFFD":{"objective-c":1},"UNI_MAX_BMP":{"objective-c":1},"0x0000FFFF":{"objective-c":1},"UNI_MAX_UTF16":{"objective-c":1},"0x0010FFFF":{"objective-c":1},"UNI_MAX_UTF32":{"objective-c":1},"0x7FFFFFFF":{"objective-c":1},"UNI_MAX_LEGAL_UTF32":{"objective-c":1},"UNI_SUR_HIGH_START":{"objective-c":1},"0xD800":{"objective-c":1},"UNI_SUR_HIGH_END":{"objective-c":1},"0xDBFF":{"objective-c":1},"UNI_SUR_LOW_START":{"objective-c":1},"0xDC00":{"objective-c":1},"UNI_SUR_LOW_END":{"objective-c":1},"0xDFFF":{"objective-c":1},"offsetsFromUTF8":{"objective-c":1},"0x00000000UL":{"objective-c":1},"0x00003080UL":{"objective-c":1},"0x000E2080UL":{"objective-c":1},"0x03C82080UL":{"objective-c":1},"0xFA082080UL":{"objective-c":1},"0x82082080UL":{"objective-c":1},"firstByteMark":{"objective-c":1},"0x00":{"objective-c":1},"0xC0":{"objective-c":1},"0xE0":{"objective-c":1},"0xF0":{"objective-c":1},"0xF8":{"objective-c":1},"0xFC":{"objective-c":1},"JK_AT_STRING_PTR":{"objective-c":1},"JK_END_STRING_PTR":{"objective-c":1},"_JKArrayCreate":{"objective-c":1},"mutableCollection":{"objective-c":1},"_JKArrayInsertObjectAtIndex":{"objective-c":1},"array":{"objective-c":1,"ruby":1},"newObject":{"objective-c":1},"objectIndex":{"objective-c":1},"_JKArrayReplaceObjectAtIndexWithObject":{"objective-c":1},"_JKArrayRemoveObjectAtIndex":{"objective-c":1},"_JKDictionaryCapacityForCount":{"objective-c":1},"_JKDictionaryCreate":{"objective-c":1},"keyHashes":{"objective-c":1},"_JKDictionaryHashEntry":{"objective-c":1},"dictionary":{"objective-c":1,"python":1},"_JKDictionaryCapacity":{"objective-c":1},"_JKDictionaryResizeIfNeccessary":{"objective-c":1},"_JKDictionaryRemoveObjectWithEntry":{"objective-c":1},"entry":{"objective-c":1},"_JKDictionaryAddObject":{"objective-c":1},"_JKDictionaryHashTableEntryForKey":{"objective-c":1},"aKey":{"objective-c":1},"_JSONDecoderCleanup":{"objective-c":1},"JSONDecoder":{"objective-c":1},"decoder":{"objective-c":1},"_NSStringObjectFromJSONString":{"objective-c":1},"NSString":{"objective-c":1},"jsonString":{"objective-c":1},"jk_managedBuffer_release":{"objective-c":1},"managedBuffer":{"objective-c":1},"jk_managedBuffer_setToStackBuffer":{"objective-c":1},"jk_managedBuffer_resize":{"objective-c":1},"newSize":{"objective-c":1},"jk_objectStack_release":{"objective-c":1},"jk_objectStack_setToStackBuffer":{"objective-c":1},"jk_objectStack_resize":{"objective-c":1},"newCount":{"objective-c":1},"jk_error":{"objective-c":1},"parseState":{"objective-c":1},"jk_parse_string":{"objective-c":1},"jk_parse_number":{"objective-c":1},"jk_parse_is_newline":{"objective-c":1},"atCharacterPtr":{"objective-c":1},"jk_parse_skip_newline":{"objective-c":1},"jk_parse_skip_whitespace":{"objective-c":1},"jk_parse_next_token":{"objective-c":1},"jk_error_parse_accept_or3":{"objective-c":1},"or1String":{"objective-c":1},"or2String":{"objective-c":1},"or3String":{"objective-c":1},"jk_create_dictionary":{"objective-c":1},"startingObjectIndex":{"objective-c":1},"jk_parse_dictionary":{"objective-c":1},"jk_parse_array":{"objective-c":1},"jk_object_for_token":{"objective-c":1},"jk_cachedObjects":{"objective-c":1},"jk_cache_age":{"objective-c":1},"jk_set_parsed_token":{"objective-c":1},"advanceBy":{"objective-c":1},"jk_encode_error":{"objective-c":1},"jk_encode_printf":{"objective-c":1},"cacheSlot":{"objective-c":1},"startingAtIndex":{"objective-c":1},"jk_encode_write":{"objective-c":1},"jk_encode_writePrettyPrintWhiteSpace":{"objective-c":1},"jk_encode_write1slow":{"objective-c":1},"depthChange":{"objective-c":1},"jk_encode_write1fast":{"objective-c":1},"jk_encode_writen":{"objective-c":1},"jk_encode_object_hash":{"objective-c":1},"objectPtr":{"objective-c":1},"jk_encode_updateCache":{"objective-c":1},"jk_encode_add_atom_to_buffer":{"objective-c":1},"jk_encode_write1":{"objective-c":1},"dc":{"objective-c":1},"_jk_encode_prettyPrint":{"objective-c":1},"jk_min":{"objective-c":1},"jk_max":{"objective-c":1},"jk_calculateHash":{"objective-c":1},"currentHash":{"objective-c":1},"JKMutableArray":{"objective-c":1},"NSMutableArray":{"objective-c":1},"collection":{"objective-c":1},"Louis":{"objective-c":1},"Gerbarg":{"objective-c":1},"via":{"objective-c":1,"ruby":1},"cocoa":{"objective-c":1},"pointed":{"objective-c":1},"Core":{"objective-c":1},"actually":{"objective-c":1},"implements":{"objective-c":1},"inherits":{"objective-c":1},"mutable":{"objective-c":1},"keeps":{"objective-c":1},"ivar":{"objective-c":1},"whether":{"objective-c":1,"ruby":1},"means":{"objective-c":1},"immutable":{"objective-c":1},"versions":{"objective-c":1,"shell":1},"receive":{"objective-c":1},"mutating":{"objective-c":1},"handled":{"objective-c":1,"python":1},"having":{"objective-c":1},"those":{"objective-c":1},"adopt":{"objective-c":1},"strategy":{"objective-c":1},"cleaner":{"objective-c":1},"gets":{"objective-c":1},"rid":{"objective-c":1},"swizzling":{"objective-c":1},"hackery":{"objective-c":1},"workaround":{"objective-c":1},"Basically":{"objective-c":1},"seem":{"objective-c":1,"shell":1},"load":{"objective-c":1},"libraries":{"objective-c":1},"work":{"objective-c":1,"shell":1},"correctly":{"objective-c":1,"shell":1},"anything":{"objective-c":1,"shell":1},"provides":{"objective-c":1},"accomplish":{"objective-c":1},"logic":{"objective-c":1},"_JKArrayClass":{"objective-c":1},"_JKArrayInstanceSize":{"objective-c":1},"0UL":{"objective-c":1},"_JKDictionaryClass":{"objective-c":1},"_JKDictionaryInstanceSize":{"objective-c":1},"_jk_NSNumberClass":{"objective-c":1},"_jk_NSNumberAllocImp":{"objective-c":1},"_jk_NSNumberInitWithUnsignedLongLongImp":{"objective-c":1},"extern":{"objective-c":1},"jk_collectionClassLoadTimeInitialization":{"objective-c":1},"pool":{"objective-c":1,"python":1},"alloc":{"objective-c":1},"init":{"objective-c":1,"shell":1},"Though":{"objective-c":1},"run":{"objective-c":1,"ruby":1},"environment":{"objective-c":1,"python":1},"initialization":{"objective-c":1},"ideal":{"objective-c":1},"objc_getClass":{"objective-c":1},"class_getInstanceSize":{"objective-c":1},"NSNumber":{"objective-c":1},"methodForSelector":{"objective-c":1},"Hacktacular":{"objective-c":1},"due":{"objective-c":1},"nature":{"objective-c":1},"clusters":{"objective-c":1},"temp_NSNumber":{"objective-c":1},"initWithUnsignedLongLong":{"objective-c":1},"release":{"objective-c":1,"python":1},"pragma":{"objective-c":1},"NSCopying":{"objective-c":1},"NSMutableCopying":{"objective-c":1},"NSFastEnumeration":{"objective-c":1},"capacity":{"objective-c":1},"mutations":{"objective-c":1},"implementation":{"objective-c":1},"allocWithZone":{"objective-c":1},"NSZone":{"objective-c":1},"raise":{"objective-c":1,"python":1,"ruby":1},"NSInvalidArgumentException":{"objective-c":1},"fashion":{"objective-c":1},"NSStringFromClass":{"objective-c":1},"NSStringFromSelector":{"objective-c":1},"_cmd":{"objective-c":1},"NSCParameterAssert":{"objective-c":1},"calloc":{"objective-c":1},"Directly":{"objective-c":1},"allocate":{"objective-c":1},"isa":{"objective-c":1},"autorelease":{"objective-c":1},"caller":{"objective-c":1,"ruby":1},"responsible":{"objective-c":1},"retaining":{"objective-c":1},"newObjects":{"objective-c":1},"realloc":{"objective-c":1},"NSMallocException":{"objective-c":1},"Unable":{"objective-c":1},"resize":{"objective-c":1},"CFRelease":{"objective-c":1},"dealloc":{"objective-c":1},"atObject":{"objective-c":1},"super":{"objective-c":1},"NSParameterAssert":{"objective-c":1},"getObjects":{"objective-c":1},"objectsPtr":{"objective-c":1},"NSRange":{"objective-c":1},"NSMaxRange":{"objective-c":1},"NSRangeException":{"objective-c":1},"lu":{"objective-c":1},"beyond":{"objective-c":1},"__clang_analyzer__":{"objective-c":1},"objectAtIndex":{"objective-c":1},"countByEnumeratingWithState":{"objective-c":1},"NSFastEnumerationState":{"objective-c":1},"stackbuf":{"objective-c":1},"mutationsPtr":{"objective-c":1},"itemsPtr":{"objective-c":1},"enumeratedCount":{"objective-c":1},"insertObject":{"objective-c":1},"anObject":{"objective-c":1},"NSInternalInconsistencyException":{"objective-c":1},"sent":{"objective-c":1,"python":1},"attempt":{"objective-c":1},"insert":{"objective-c":1},"nil":{"objective-c":1,"ruby":1},"Stupid":{"objective-c":1},"clang":{"objective-c":1},"analyzer":{"objective-c":1},"removeObjectAtIndex":{"objective-c":1},"replaceObjectAtIndex":{"objective-c":1},"withObject":{"objective-c":1},"copyWithZone":{"objective-c":1},"initWithObjects":{"objective-c":1},"mutableCopyWithZone":{"objective-c":1},"NSEnumerator":{"objective-c":1},"nextObject":{"objective-c":1},"initWithJKDictionary":{"objective-c":1},"initDictionary":{"objective-c":1},"allObjects":{"objective-c":1},"CFRetain":{"objective-c":1},"arrayWithObjects":{"objective-c":1},"returnObject":{"objective-c":1},"NSMutableDictionary":{"objective-c":1},"CF":{"objective-c":1},"CFBasicHash":{"objective-c":1},"bonus":{"objective-c":1},"very":{"objective-c":1},"well":{"objective-c":1},"too":{"objective-c":1},"jk_dictionaryCapacities":{"objective-c":1},"3UL":{"objective-c":1},"7UL":{"objective-c":1},"13UL":{"objective-c":1},"23UL":{"objective-c":1},"41UL":{"objective-c":1},"71UL":{"objective-c":1},"127UL":{"objective-c":1},"191UL":{"objective-c":1},"251UL":{"objective-c":1},"383UL":{"objective-c":1},"631UL":{"objective-c":1},"1087UL":{"objective-c":1},"1723UL":{"objective-c":1},"2803UL":{"objective-c":1},"4523UL":{"objective-c":1},"7351UL":{"objective-c":1},"11959UL":{"objective-c":1},"19447UL":{"objective-c":1},"31231UL":{"objective-c":1},"50683UL":{"objective-c":1},"81919UL":{"objective-c":1},"132607UL":{"objective-c":1},"214519UL":{"objective-c":1},"346607UL":{"objective-c":1},"561109UL":{"objective-c":1},"907759UL":{"objective-c":1},"1468927UL":{"objective-c":1},"2376191UL":{"objective-c":1},"3845119UL":{"objective-c":1},"6221311UL":{"objective-c":1},"10066421UL":{"objective-c":1},"16287743UL":{"objective-c":1},"26354171UL":{"objective-c":1},"42641881UL":{"objective-c":1},"68996069UL":{"objective-c":1},"111638519UL":{"objective-c":1},"180634607UL":{"objective-c":1},"292272623UL":{"objective-c":1},"472907251UL":{"objective-c":1},"mid":{"objective-c":1},"tableSize":{"objective-c":1},"lround":{"objective-c":1},"floor":{"objective-c":1},"capacityForCount":{"objective-c":1},"oldCapacity":{"objective-c":1},"NS_BLOCK_ASSERTIONS":{"objective-c":1},"oldCount":{"objective-c":1},"oldEntry":{"objective-c":1},"memory":{"objective-c":1,"python":1},"atEntry":{"objective-c":1},"certain":{"objective-c":1},"invariants":{"objective-c":1},"speed":{"objective-c":1},"entries":{"objective-c":1},"until":{"objective-c":1},"removeIdx":{"objective-c":1},"entryIdx":{"objective-c":1},"addKeyEntry":{"objective-c":1},"addIdx":{"objective-c":1},"atAddEntry":{"objective-c":1},"keyEntry":{"objective-c":1},"CFEqual":{"objective-c":1},"never":{"objective-c":1},"because":{"objective-c":1},"responsibility":{"objective-c":1},"CFHash":{"objective-c":1},"would":{"objective-c":1,"ruby":1,"shell":1},"objectForKey":{"objective-c":1},"entryForKey":{"objective-c":1},"andKeys":{"objective-c":1},"arrayIdx":{"objective-c":1},"keyEnumerator":{"objective-c":1},"setObject":{"objective-c":1},"forKey":{"objective-c":1},"Why":{"objective-c":1},"earth":{"objective-c":1},"complain":{"objective-c":1},"leak":{"objective-c":1},"doesn":{"objective-c":1,"shell":1},"removeObjectForKey":{"objective-c":1},"initWithDictionary":{"objective-c":1},"va_list":{"objective-c":1},"varArgsList":{"objective-c":1},"va_start":{"objective-c":1},"formatString":{"objective-c":1},"initWithFormat":{"objective-c":1},"va_end":{"objective-c":1},"lineStart":{"objective-c":1},"lineEnd":{"objective-c":1},"lineString":{"objective-c":1},"carretString":{"objective-c":1},"initWithBytes":{"objective-c":1},"NSUTF8StringEncoding":{"objective-c":1},"stringWithFormat":{"objective-c":1},"errorWithDomain":{"objective-c":1},"JKErrorDomain":{"objective-c":1},"1L":{"objective-c":1},"userInfo":{"objective-c":1},"dictionaryWithObjectsAndKeys":{"objective-c":1},"NSLocalizedDescriptionKey":{"objective-c":1},"numberWithUnsignedLong":{"objective-c":1},"JKAtIndexKey":{"objective-c":1},"JKLineNumberKey":{"objective-c":1},"JKErrorLine0Key":{"objective-c":1},"JKErrorLine1Key":{"objective-c":1},"Stack":{"objective-c":1},"management":{"objective-c":1},"functions":{"objective-c":1,"python":1,"shell":1},"roundedUpNewSize":{"objective-c":1},"newBuffer":{"objective-c":1},"oldBuffer":{"objective-c":1},"reallocf":{"objective-c":1},"roundedUpNewCount":{"objective-c":1},"returnCode":{"objective-c":1},"newKeys":{"objective-c":1},"newCFHashes":{"objective-c":1},"errorExit":{"objective-c":1},"u32CodePoint":{"objective-c":1},"finished":{"objective-c":1},"0xFDD0U":{"objective-c":1},"0xFDEFU":{"objective-c":1},"0xFFFEU":{"objective-c":1},"0x10FFFFU":{"objective-c":1},"isLegalUTF8":{"objective-c":1},"srcptr":{"objective-c":1},"falls":{"objective-c":1},"0x80":{"objective-c":1},"0xBF":{"objective-c":1},"fall":{"objective-c":1,"python":1},"0xA0":{"objective-c":1},"0xED":{"objective-c":1},"0x9F":{"objective-c":1},"0x90":{"objective-c":1},"0xF4":{"objective-c":1},"0x8F":{"objective-c":1},"0xC2":{"objective-c":1},"ConvertSingleCodePointInUTF8":{"objective-c":1},"nextUTF8":{"objective-c":1},"convertedUTF32":{"objective-c":1},"extraBytesToRead":{"objective-c":1},"0xff":{"objective-c":1},"0xc0":{"objective-c":1},"ConvertUTF32toUTF8":{"objective-c":1},"targetEnd":{"objective-c":1},"byteMask":{"objective-c":1},"byteMark":{"objective-c":1},"bytesToWrite":{"objective-c":1},"Figure":{"objective-c":1},"many":{"objective-c":1},"Turn":{"objective-c":1},"illegally":{"objective-c":1},"things":{"objective-c":1,"ruby":1,"shell":1},"Plane":{"objective-c":1},"0x800":{"objective-c":1},"0x10000":{"objective-c":1},"everything":{"objective-c":1,"shell":1},"jk_string_add_unicodeCodePoint":{"objective-c":1},"unicodeCodePoint":{"objective-c":1},"tokenBufferIdx":{"objective-c":1},"stringHash":{"objective-c":1},"u8s":{"objective-c":1},"utf8len":{"objective-c":1},"nextIdx":{"objective-c":1},"Decoding":{"objective-c":1},"deserializing":{"objective-c":1},"stringStart":{"objective-c":1},"endOfBuffer":{"objective-c":1},"atStringCharacter":{"objective-c":1},"tokenStartIndex":{"objective-c":1},"onlySimpleString":{"objective-c":1},"stringState":{"objective-c":1},"escapedUnicode1":{"objective-c":1},"escapedUnicode2":{"objective-c":1},"escapedUnicodeCodePoint":{"objective-c":1},"currentChar":{"objective-c":1},"XXX":{"objective-c":1},"finishedParsing":{"objective-c":1},"0x80UL":{"objective-c":1},"nextValidCharacter":{"objective-c":1},"u32ch":{"objective-c":1},"switchToSlowPath":{"objective-c":1},"continue":{"objective-c":1,"shell":1},"ld":{"objective-c":1},"stringWithUTF8String":{"objective-c":1},"__FILE__":{"objective-c":1},"__LINE__":{"objective-c":1},"slowMatch":{"objective-c":1},"0x20UL":{"objective-c":1},"Invalid":{"objective-c":1,"python":1},"0x20":{"objective-c":1},"0x":{"objective-c":1},"2x":{"objective-c":1},"escapedChar":{"objective-c":1},"Not":{"objective-c":1},"JKParseOptionLooseUnicode":{"objective-c":1},"Illegal":{"objective-c":1},"End":{"objective-c":1},"reached":{"objective-c":1},"isSurrogate":{"objective-c":1},"parsedEscapedChar":{"objective-c":1},"hexValue":{"objective-c":1},"parsedHex":{"objective-c":1},"10U":{"objective-c":1},"0xD800U":{"objective-c":1},"0xE000U":{"objective-c":1},"0xDC00U":{"objective-c":1},"0xdc00":{"objective-c":1},"0xdfff":{"objective-c":1},"0xd800":{"objective-c":1},"0x400":{"objective-c":1},"Unexpected":{"objective-c":1},"Found":{"objective-c":1},"9a":{"objective-c":1},"fA":{"objective-c":1},"Required":{"objective-c":1},"surrogate":{"objective-c":1},"Unknown":{"objective-c":1},"numberStart":{"objective-c":1},"atNumberCharacter":{"objective-c":1},"numberState":{"objective-c":1},"isFloatingPoint":{"objective-c":1},"isNegative":{"objective-c":1},"backup":{"objective-c":1},"startingIndex":{"objective-c":1},"lowerCaseCC":{"objective-c":1},"numberTempBuf":{"objective-c":1},"endOfNumber":{"objective-c":1},"Treat":{"objective-c":1},"floating":{"objective-c":1},"point":{"objective-c":1},"capable":{"objective-c":1},"representing":{"objective-c":1,"python":1},"negative":{"objective-c":1},"zeros":{"objective-c":1},"strtod":{"objective-c":1},"documented":{"objective-c":1},"U":{"objective-c":1},"identical":{"objective-c":1},"underflow":{"objective-c":1},"along":{"objective-c":1},"setting":{"objective-c":1,"python":1},"ERANGE":{"objective-c":1},"strtoull":{"objective-c":1},"represented":{"objective-c":1},"minimum":{"objective-c":1},"llu":{"objective-c":1},"consume":{"objective-c":1},"tokens":{"objective-c":1},"characters":{"objective-c":1,"shell":1},"hashIndex":{"objective-c":1},"endOfStringPtr":{"objective-c":1},"JKParseOptionUnicodeNewlines":{"objective-c":1},"0xc2":{"objective-c":1},"0x85":{"objective-c":1},"0xe2":{"objective-c":1},"0xa8":{"objective-c":1},"0xa9":{"objective-c":1},"newlineAdvanceAtIndex":{"objective-c":1},"JKParseOptionComments":{"objective-c":1},"currentCharacter":{"objective-c":1},"stopParsing":{"objective-c":1},"5UL":{"objective-c":1},"wanted":{"objective-c":1},"STRING":{"objective-c":1},"NUMBER":{"objective-c":1},"acceptStrings":{"objective-c":1},"acceptIdx":{"objective-c":1},"Expected":{"objective-c":1},"arrayState":{"objective-c":1},"parsedArray":{"objective-c":1},"128UL":{"objective-c":1},"objectsIndex":{"objective-c":1},"zu":{"objective-c":1},"comma":{"objective-c":1,"shell":1},"parsedDictionary":{"objective-c":1},"dictState":{"objective-c":1},"objectStackIndex":{"objective-c":1},"json_parse_it":{"objective-c":1},"parsedObject":{"objective-c":1},"Reached":{"objective-c":1},"JKParseOptionPermitTextAfterValidJSON":{"objective-c":1},"additional":{"objective-c":1},"Galois":{"objective-c":1},"Linear":{"objective-c":1},"Feedback":{"objective-c":1},"Shift":{"objective-c":1},"Register":{"objective-c":1},"LFSR":{"objective-c":1},"PRNG":{"objective-c":1},"pick":{"objective-c":1},"NOTE":{"objective-c":1},"MUST":{"objective-c":1},"initialized":{"objective-c":1},"initalized":{"objective-c":1},"initWithParseOptions":{"objective-c":1},"0x80200003U":{"objective-c":1},"addressing":{"objective-c":1},"collision":{"objective-c":1},"resolution":{"objective-c":1},"bounded":{"objective-c":1},"bucket":{"objective-c":1},"synonymous":{"objective-c":1},"Items":{"objective-c":1},"An":{"objective-c":1},"incremented":{"objective-c":1},"saturating":{"objective-c":1},"arithmetic":{"objective-c":1},"decremeted":{"objective-c":1},"shifts":{"objective-c":1},"Thus":{"objective-c":1},"managed":{"objective-c":1},"AIMD":{"objective-c":1},"policy":{"objective-c":1},"additive":{"objective-c":1},"increase":{"objective-c":1},"multiplicative":{"objective-c":1},"decrease":{"objective-c":1},"calculations":{"objective-c":1},"manipulations":{"objective-c":1},"branchless":{"objective-c":1},"primitive":{"objective-c":1},"currently":{"objective-c":1},"allows":{"objective-c":1},"useable":{"objective-c":1},"populated":{"objective-c":1},"When":{"objective-c":1},"hasn":{"objective-c":1},"aged":{"objective-c":1},"random":{"objective-c":1},"setBucket":{"objective-c":1},"useableBucket":{"objective-c":1},"parsedAtom":{"objective-c":1},"memcmp":{"objective-c":1},"hashing":{"objective-c":1},"effective":{"objective-c":1},"across":{"objective-c":1},"different":{"objective-c":1},"buckets":{"objective-c":1},"relatively":{"objective-c":1},"coprime":{"objective-c":1},"primes":{"objective-c":1},"CFStringCreateWithBytes":{"objective-c":1},"kCFStringEncodingUTF8":{"objective-c":1},"CFNumberCreate":{"objective-c":1},"kCFNumberLongLongType":{"objective-c":1},"LLONG_MAX":{"objective-c":1},"kCFNumberDoubleType":{"objective-c":1},"appropriate":{"objective-c":1},"kCFBooleanTrue":{"objective-c":1},"kCFBooleanFalse":{"objective-c":1},"kCFNull":{"objective-c":1},"decoderWithParseOptions":{"objective-c":1},"JKParseOptionStrict":{"objective-c":1},"JKParseOptionValidFlags":{"objective-c":1},"4096UL":{"objective-c":1},"2048UL":{"objective-c":1},"primarily":{"objective-c":1},"convenience":{"objective-c":1},"autoreleased":{"objective-c":1},"most":{"objective-c":1,"python":1},"resources":{"objective-c":1},"pops":{"objective-c":1},"clearCache":{"objective-c":1},"needs":{"objective-c":1},"completely":{"objective-c":1},"rewritten":{"objective-c":1},"_JKParseUTF8String":{"objective-c":1},"YES":{"objective-c":1,"shell":1},"stackTokenBuffer":{"objective-c":1},"stackObjects":{"objective-c":1},"stackKeys":{"objective-c":1},"stackCFHashes":{"objective-c":1},"parsedJSON":{"objective-c":1},"Deprecated":{"objective-c":1},"objectWithUTF8String":{"objective-c":1},"parseUTF8String":{"objective-c":1},"objectWithData":{"objective-c":1},"parseJSONData":{"objective-c":1},"jsonData":{"objective-c":1},"Methods":{"objective-c":1},"mutableObjectWithUTF8String":{"objective-c":1},"mutableObjectWithData":{"objective-c":1},"little":{"objective-c":1},"explanation":{"objective-c":1},"Prior":{"objective-c":1},"objectFromJSONStringWithParseOptions":{"objective-c":1},"looked":{"objective-c":1},"utf8String":{"objective-c":1},"UTF8String":{"objective-c":1},"utf8Length":{"objective-c":1},"reason":{"objective-c":1,"python":1},"keep":{"objective-c":1},"amount":{"objective-c":1},"allocated":{"objective-c":1},"yet":{"objective-c":1},"freed":{"objective-c":1},"dependent":{"objective-c":1},"reclaimed":{"objective-c":1},"simpler":{"objective-c":1},"overhead":{"objective-c":1},"Now":{"objective-c":1},"CFMutableData":{"objective-c":1},"sized":{"objective-c":1},"question":{"objective-c":1},"Once":{"objective-c":1,"python":1},"hopefully":{"objective-c":1},"allow":{"objective-c":1,"python":1},"Another":{"objective-c":1},"slight":{"objective-c":1},"cleanup":{"objective-c":1},"routines":{"objective-c":1},"calls":{"objective-c":1},"early":{"objective-c":1},"decoders":{"objective-c":1},"know":{"objective-c":1},"going":{"objective-c":1},"smoothly":{"objective-c":1},"likely":{"objective-c":1},"perhaps":{"objective-c":1},"hundred":{"objective-c":1},"waiting":{"objective-c":1},"compared":{"objective-c":1},"thousands":{"objective-c":1},"easily":{"objective-c":1},"hundreds":{"objective-c":1},"limbo":{"objective-c":1},"us":{"objective-c":1},"win":{"objective-c":1},"Autorelease":{"objective-c":1},"By":{"objective-c":1},"effectively":{"objective-c":1},"guarantee":{"objective-c":1},"requirement":{"objective-c":1},"matter":{"objective-c":1},"downside":{"objective-c":1},"best":{"objective-c":1,"python":1},"minimize":{"objective-c":1},"balances":{"objective-c":1},"JSONKitDeserializing":{"objective-c":1},"CFMutableDataRef":{"objective-c":1},"mutableData":{"objective-c":1},"CFIndex":{"objective-c":1},"stringLength":{"objective-c":1},"CFStringGetLength":{"objective-c":1},"CFStringRef":{"objective-c":1},"stringUTF8Length":{"objective-c":1},"lengthOfBytesUsingEncoding":{"objective-c":1},"CFDataCreateMutable":{"objective-c":1},"UInt8":{"objective-c":1},"CFDataGetMutableBytePtr":{"objective-c":1},"usedBytes":{"objective-c":1},"0L":{"objective-c":1},"convertedCount":{"objective-c":1},"CFStringGetBytes":{"objective-c":1},"CFRangeMake":{"objective-c":1},"dictionaryWithObject":{"objective-c":1},"occurred":{"objective-c":1,"python":1},"converting":{"objective-c":1},"exitNow":{"objective-c":1},"CFDataSetLength":{"objective-c":1},"objectFromJSONString":{"objective-c":1},"mutableObjectFromJSONString":{"objective-c":1},"mutableObjectFromJSONStringWithParseOptions":{"objective-c":1},"objectFromJSONData":{"objective-c":1},"objectFromJSONDataWithParseOptions":{"objective-c":1},"mutableObjectFromJSONData":{"objective-c":1},"mutableObjectFromJSONDataWithParseOptions":{"objective-c":1},"Encoding":{"objective-c":1,"python":1},"varArgsListCopy":{"objective-c":1},"va_copy":{"objective-c":1},"formattedStringLength":{"objective-c":1},"returnValue":{"objective-c":1},"vsnprintf":{"objective-c":1},"256UL":{"objective-c":1},"unexpectedly":{"objective-c":1},"formatIdx":{"objective-c":1},"JKSerializeOptionPretty":{"objective-c":1},"depthWhiteSpace":{"objective-c":1},"encodeCacheObject":{"objective-c":1},"isClass":{"objective-c":1},"objectHash":{"objective-c":1},"encounter":{"objective-c":1},"exactly":{"objective-c":1},"ONCE":{"objective-c":1},"supplies":{"objective-c":1},"supported":{"objective-c":1},"fault":{"objective-c":1},"rerunningAfterClassFormatter":{"objective-c":1},"rerunAfterClassFormatter":{"objective-c":1},"around":{"objective-c":1,"shell":1},"breaks":{"objective-c":1},"ABI":{"objective-c":1},"compatibility":{"objective-c":1,"python":1},"OpenStep":{"objective-c":1},"NextStep":{"objective-c":1},"euphemistically":{"objective-c":1},"tagged":{"objective-c":1},"There":{"objective-c":1},"highly":{"objective-c":1},"technical":{"objective-c":1},"involving":{"objective-c":1},"passages":{"objective-c":1},"couched":{"objective-c":1},"perspective":{"objective-c":1},"fundamentally":{"objective-c":1},"Wrong":{"objective-c":1},"Broken":{"objective-c":1},"implemented":{"objective-c":1},"Assuming":{"objective-c":1},"glossed":{"objective-c":1},"over":{"objective-c":1,"python":1,"shell":1},"clearly":{"objective-c":1},"breaking":{"objective-c":1},"resulted":{"objective-c":1},"bump":{"objective-c":1},"various":{"objective-c":1},"prevent":{"objective-c":1},"causes":{"objective-c":1},"fine":{"objective-c":1},"suddenly":{"objective-c":1},"fact":{"objective-c":1},"says":{"objective-c":1},"behavior":{"objective-c":1},"lower":{"objective-c":1},"preserved":{"objective-c":1},"casting":{"objective-c":1},"integer":{"objective-c":1},"works":{"objective-c":1,"ruby":1},"compiler":{"objective-c":1},"informal":{"objective-c":1},"meant":{"objective-c":1},"normative":{"objective-c":1},"pedantically":{"objective-c":1},"correct":{"objective-c":1},"words":{"objective-c":1},"obligated":{"objective-c":1},"produce":{"objective-c":1},"earlier":{"objective-c":1},"statement":{"objective-c":1},"Fan":{"objective-c":1},"fucking":{"objective-c":1},"tastic":{"objective-c":1},"object_getClass":{"objective-c":1},"Because":{"objective-c":1},"reduces":{"objective-c":1},"Calling":{"objective-c":1},"potentially":{"objective-c":1},"spill":{"objective-c":1},"registers":{"objective-c":1},"establish":{"objective-c":1},"finally":{"objective-c":1},"subroutine":{"objective-c":1},"Then":{"objective-c":1},"spend":{"objective-c":1},"half":{"objective-c":1,"shell":1},"dozen":{"objective-c":1},"however":{"objective-c":1},"doing":{"objective-c":1},"whatever":{"objective-c":1,"python":1},"One":{"objective-c":1},"dozens":{"objective-c":1},"maybe":{"objective-c":1},"Yes":{"objective-c":1,"shell":1},"orders":{"objective-c":1},"magnitude":{"objective-c":1},"Which":{"objective-c":1},"compelling":{"objective-c":1},"own":{"objective-c":1,"python":1},"performance":{"objective-c":1},"often":{"objective-c":1},"happy":{"objective-c":1},"gains":{"objective-c":1},"workAroundMacOSXABIBreakingBug":{"objective-c":1},"0x1":{"objective-c":1},"objectISA":{"objective-c":1},"slowClassLookup":{"objective-c":1},"isKindOfClass":{"objective-c":1},"returned":{"objective-c":1,"python":1},"formatter":{"objective-c":1,"ruby":1},"Original":{"objective-c":1},"benefit":{"objective-c":1},"optimizer":{"objective-c":1},"loop":{"objective-c":1,"shell":1},"invariant":{"objective-c":1},"motion":{"objective-c":1},"printing":{"objective-c":1},"macro":{"objective-c":1},"cStringPtr":{"objective-c":1},"CFStringGetCStringPtr":{"objective-c":1},"kCFStringEncodingMacRoman":{"objective-c":1},"utf8Idx":{"objective-c":1},"0x80U":{"objective-c":1},"slowUTF8Path":{"objective-c":1},"0x20U":{"objective-c":1},"JKSerializeOptionEscapeForwardSlashes":{"objective-c":1},"maxStringUTF8Length":{"objective-c":1},"CFStringGetMaximumSizeForEncoding":{"objective-c":1},"32L":{"objective-c":1},"16L":{"objective-c":1},"JKSerializeOptionEscapeUnicode":{"objective-c":1},"0xffffU":{"objective-c":1},"0xd7c0U":{"objective-c":1},"0xdc00U":{"objective-c":1},"0x3ffU":{"objective-c":1},"objCType":{"objective-c":1},"anum":{"objective-c":1},"aptr":{"objective-c":1},"ullv":{"objective-c":1},"llv":{"objective-c":1},"CFNumberGetValue":{"objective-c":1},"CFNumberRef":{"objective-c":1},"0LL":{"objective-c":1},"convertNumber":{"objective-c":1},"scalar":{"objective-c":1},"L":{"objective-c":1},"Q":{"objective-c":1},"B":{"objective-c":1},"10ULL":{"objective-c":1},"0ULL":{"objective-c":1},"dv":{"objective-c":1},"isfinite":{"objective-c":1},"Floating":{"objective-c":1},"finite":{"objective-c":1},"NaN":{"objective-c":1},"Infinity":{"objective-c":1},"17g":{"objective-c":1},"printComma":{"objective-c":1},"arrayCount":{"objective-c":1},"CFArrayGetCount":{"objective-c":1},"CFArrayRef":{"objective-c":1},"1020L":{"objective-c":1},"arrayObject":{"objective-c":1},"CFArrayGetValues":{"objective-c":1},"dictionaryCount":{"objective-c":1},"CFDictionaryGetCount":{"objective-c":1},"CFDictionaryRef":{"objective-c":1},"enumerateObject":{"objective-c":1},"allKeys":{"objective-c":1},"sortedArrayUsingSelector":{"objective-c":1},"keyObject":{"objective-c":1},"keyObjectISA":{"objective-c":1},"CFDictionaryGetValue":{"objective-c":1},"CFDictionaryGetKeysAndValues":{"objective-c":1},"respondsToSelector":{"objective-c":1},"serializeUnsupportedClassesUsingDelegate":{"objective-c":1},"32UL":{"objective-c":1},"stackJSONBuffer":{"objective-c":1},"stackUTF8Buffer":{"objective-c":1},"stackBuffer":{"objective-c":1},"CFDataCreate":{"objective-c":1},"CFDataCreateWithBytesNoCopy":{"objective-c":1},"CFStringCreateWithBytesNoCopy":{"objective-c":1},"encode":{"objective-c":1,"python":1},"JSONKitSerializing":{"objective-c":1},"serializing":{"objective-c":1},"Useful":{"objective-c":1},"who":{"objective-c":1},"Otherwise":{"objective-c":1,"ruby":1},"arrayWithObject":{"objective-c":1},"stringToBeJSONSerialized":{"objective-c":1},"chopping":{"objective-c":1},"square":{"objective-c":1},"brackets":{"objective-c":1},"returning":{"objective-c":1},"JSONData":{"objective-c":1},"JSONDataWithOptions":{"objective-c":1},"JKSerializeOptionNone":{"objective-c":1},"includeQuotes":{"objective-c":1},"serializeOptions":{"objective-c":1},"JSONString":{"objective-c":1},"JSONStringWithOptions":{"objective-c":1},"JSONKitSerializingBlockAdditions":{"objective-c":1},"serializeUnsupportedClassesUsingBlock":{"objective-c":1},"coding":{"python":1},"requests":{"python":1},"models":{"python":1},"Requests":{"python":1},"os":{"python":1},"socket":{"python":1},"datetime":{"python":1},"io":{"python":1,"shell":1},"BytesIO":{"python":1},"dispatch_hook":{"python":1},"HOOKS":{"python":1},"structures":{"python":1},"CaseInsensitiveDict":{"python":1},"status_codes":{"python":1},"codes":{"python":1},"auth":{"python":1},"HTTPBasicAuth":{"python":1},"HTTPProxyAuth":{"python":1},"cookies":{"python":1},"cookiejar_from_dict":{"python":1},"extract_cookies_to_jar":{"python":1},"get_cookie_header":{"python":1},"packages":{"python":1},"urllib3":{"python":1},"exceptions":{"python":1},"MaxRetryError":{"python":1},"LocationParseError":{"python":1},"TimeoutError":{"python":1},"SSLError":{"python":1},"_SSLError":{"python":1},"HTTPError":{"python":1},"_HTTPError":{"python":1},"connectionpool":{"python":1},"poolmanager":{"python":1},"filepost":{"python":1},"encode_multipart_formdata":{"python":1},"SCHEMAS":{"python":1},"ConnectionError":{"python":1},"RequestException":{"python":1},"Timeout":{"python":1},"TooManyRedirects":{"python":1},"URLRequired":{"python":1},"MissingSchema":{"python":1},"InvalidSchema":{"python":1},"InvalidURL":{"python":1},"utils":{"python":1},"get_encoding_from_headers":{"python":1},"stream_untransfer":{"python":1},"guess_filename":{"python":1},"requote_uri":{"python":1},"stream_decode_response_unicode":{"python":1},"get_netrc_auth":{"python":1},"get_environ_proxies":{"python":1},"to_key_val_list":{"python":1},"DEFAULT_CA_BUNDLE_PATH":{"python":1},"parse_header_links":{"python":1},"iter_slices":{"python":1},"guess_json_utf":{"python":1},"compat":{"python":1},"cookielib":{"python":1},"urlparse":{"python":1},"urlunparse":{"python":1},"urljoin":{"python":1},"urlsplit":{"python":1},"urlencode":{"python":1},"StringIO":{"python":1},"is_py2":{"python":1},"chardet":{"python":1},"builtin_str":{"python":1},"urldefrag":{"python":1},"basestring":{"python":1},"REDIRECT_STATI":{"python":1},"temporary_moved":{"python":1},"CONTENT_CHUNK_SIZE":{"python":1},"carries":{"python":1},"functionality":{"python":1,"ruby":1},"Recommended":{"python":1},"__init__":{"python":1},"None":{"python":1},"dict":{"python":1},"redirect":{"python":1},"False":{"python":1},"allow_redirects":{"python":1},"proxies":{"python":1},"config":{"python":1},"prefetch":{"python":1},"True":{"python":1},"_poolmanager":{"python":1},"verify":{"python":1},"session":{"python":1},"cert":{"python":1},"Dictionary":{"python":1},"configurations":{"python":1},"Float":{"python":1},"describes":{"python":1},"setdefaulttimeout":{"python":1},"representations":{"python":1},"NameError":{"python":1},"UnicodeDecodeError":{"python":1},"HTTP":{"python":1},"attach":{"python":1},"Method":{"python":1},"lists":{"python":1},"multivalued":{"python":1},"chain":{"python":1},"disables":{"python":1},"storage":{"python":1,"shell":1},"redirects":{"python":1},"allowed":{"python":1},"ing":{"python":1},"Location":{"python":1},"proxy":{"python":1},"proxy_type":{"python":1},"uri_ref":{"python":1},"configuration":{"python":1},"variables":{"python":1},"HTTP_PROXY":{"python":1},"HTTPS_PROXY":{"python":1},"trust_env":{"python":1},"metadata":{"python":1,"shell":1},"once":{"python":1},"Authentication":{"python":1},"tuple":{"python":1},"CookieJar":{"python":1},"isinstance":{"python":1},"Event":{"python":1},"handling":{"python":1},"event":{"python":1},"register_hook":{"python":1},"hook":{"python":1},"Session":{"python":1},"SSL":{"python":1},"Verification":{"python":1},"Certificate":{"python":1},"Prefetch":{"python":1},"configured":{"python":1},"base_headers":{"python":1},"__repr__":{"python":1},"_build_response":{"python":1},"resp":{"python":1},"build":{"python":1},"Pass":{"python":1},"Fallback":{"python":1},"status_code":{"python":1},"getattr":{"python":1},"insensitive":{"python":1},"server":{"python":1},"Don":{"python":1},"store_cookies":{"python":1},"Save":{"python":1},"cookie":{"python":1},"set_cookie":{"python":1},"harmed":{"python":1},"making":{"python":1},"full_url":{"python":1},"decode":{"python":1},"see_other":{"python":1},"Consume":{"python":1},"released":{"python":1},"max_redirects":{"python":1},"Release":{"python":1},"connection":{"python":1},"release_conn":{"python":1},"append":{"python":1},"redirection":{"python":1},"scheme":{"python":1},"Section":{"python":1},"startswith":{"python":1},"parsed_rurl":{"python":1},"Facilitate":{"python":1},"RFC2616":{"python":1},"compliant":{"python":1},"resource":{"python":1},"domain":{"python":1},"tld":{"python":1},"netloc":{"python":1},"Compliant":{"python":1},"RFC3986":{"python":1},"w3":{"python":1},"Protocols":{"python":1},"rfc2616":{"python":1},"sec10":{"python":1},"Do":{"python":1},"browsers":{"python":1},"strict_mode":{"python":1},"Remove":{"python":1,"ruby":1},"Cookie":{"python":1},"KeyError":{"python":1},"staticmethod":{"python":1},"_encode_params":{"python":1},"piece":{"python":1},"Will":{"python":1},"successfully":{"python":1},"tuples":{"python":1},"Order":{"python":1},"retained":{"python":1},"abritrary":{"python":1},"elif":{"python":1},"hasattr":{"python":1},"__iter__":{"python":1},"vs":{"python":1},"doseq":{"python":1},"_encode_files":{"python":1},"new_fields":{"python":1},"fp":{"python":1},"property":{"python":1},"paths":{"python":1},"fragment":{"python":1},"schema":{"python":1},"idna":{"python":1},"UnicodeError":{"python":1},"enc_params":{"python":1},"encode_uri":{"python":1},"path_url":{"python":1},"Proxies":{"python":1},"URLs":{"python":1},"url_base":{"python":1},"frag":{"python":1},"Properly":{"python":1},"register":{"python":1},"callable":{"python":1},"extend":{"python":1},"deregister_hook":{"python":1},"Deregister":{"python":1},"previously":{"python":1,"shell":1},"registered":{"python":1},"Returns":{"python":1,"ruby":1},"existed":{"python":1},"ValueError":{"python":1},"anyway":{"python":1},"Sends":{"python":1},"during":{"python":1},"transmission":{"python":1},"contain":{"python":1},"override":{"python":1},"Pre":{"python":1},"pre_request":{"python":1},"__dict__":{"python":1},"update":{"python":1},"Logging":{"python":1},"verbose":{"python":1,"ruby":1},"isoformat":{"python":1},"netrc":{"python":1},"basic":{"python":1},"Allow":{"python":1},"Update":{"python":1},"reflect":{"python":1},"Nottin":{"python":1},"wasn":{"python":1},"explicitly":{"python":1},"_p":{"python":1},"no_proxy":{"python":1},"lambda":{"python":1,"ruby":1},"strip":{"python":1,"shell":1},"hostname":{"python":1},"endswith":{"python":1},"conn":{"python":1},"proxy_from_url":{"python":1},"_proxy":{"python":1},"proxy_auth":{"python":1},"keep_alive":{"python":1},"connection_from_url":{"python":1},"Connection":{"python":1},"cert_loc":{"python":1},"Look":{"python":1},"environ":{"python":1},"REQUESTS_CA_BUNDLE":{"python":1},"Curl":{"python":1},"CURL_CA_BUNDLE":{"python":1},"Could":{"python":1},"suitable":{"python":1},"CA":{"python":1},"certificate":{"python":1},"bundle":{"python":1},"cert_reqs":{"python":1},"CERT_REQUIRED":{"python":1},"ca_certs":{"python":1},"CERT_NONE":{"python":1},"cert_file":{"python":1},"key_file":{"python":1},"Skip":{"python":1},"cookie_header":{"python":1},"pre_send":{"python":1},"urlopen":{"python":1},"assert_same_host":{"python":1},"preload_content":{"python":1},"decode_content":{"python":1},"retries":{"python":1},"max_retries":{"python":1},"sockerr":{"python":1},"timed":{"python":1},"build_response":{"python":1},"Post":{"python":1},"post_request":{"python":1},"consumed":{"python":1},"danger_mode":{"python":1},"raise_for_status":{"python":1},"_content":{"python":1},"_content_consumed":{"python":1},"responded":{"python":1},"Case":{"python":1},"File":{"python":1,"ruby":1},"Final":{"python":1},"Resulting":{"python":1},"accessing":{"python":1},"responses":{"python":1},"sorted":{"python":1},"oldest":{"python":1},"recent":{"python":1},"created":{"python":1},"Cookies":{"python":1},"__bool__":{"python":1},"OK":{"python":1},"__nonzero__":{"python":1},"iter_content":{"python":1},"chunk_size":{"python":1},"decode_unicode":{"python":1},"Iterates":{"python":1},"avoids":{"python":1},"reading":{"python":1},"chunk":{"python":1},"necessarily":{"python":1},"each":{"python":1,"ruby":1},"decoding":{"python":1},"take":{"python":1},"place":{"python":1},"simulate":{"python":1},"chunks":{"python":1},"generate":{"python":1,"ruby":1},"yield":{"python":1,"ruby":1},"gen":{"python":1},"iter_lines":{"python":1},"splitlines":{"python":1},"RuntimeError":{"python":1},"AttributeError":{"python":1},"exhausted":{"python":1},"guessed":{"python":1},"Try":{"python":1},"detected":{"python":1},"detect":{"python":1},"Decode":{"python":1},"errors":{"python":1},"LookupError":{"python":1},"raised":{"python":1},"indicate":{"python":1},"misspelling":{"python":1},"similar":{"python":1},"mistake":{"python":1},"So":{"python":1},"blindly":{"python":1},"encoded":{"python":1},"Detect":{"python":1},"detection":{"python":1},"fails":{"python":1},"guess":{"python":1},"loads":{"python":1,"shell":1},"MultiDict":{"python":1},"Reason":{"python":1},"Raises":{"python":1,"ruby":1},"stored":{"python":1},"URLError":{"python":1},"http_error_msg":{"python":1},"Redirection":{"python":1},"Client":{"python":1},"http_error":{"python":1},"optparse":{"ruby":1},"Commander":{"ruby":1},"Runner":{"ruby":1},"Exceptions":{"ruby":1},"CommandError":{"ruby":1},"StandardError":{"ruby":1},"InvalidCommandError":{"ruby":1},"Array":{"ruby":1},"commands":{"ruby":1},"attr_reader":{"ruby":1},"Hash":{"ruby":1},"aliases":{"ruby":1,"shell":1},"help_formatter_aliases":{"ruby":1},"runner":{"ruby":1},"Optionally":{"ruby":1},"supplying":{"ruby":1},"_args_":{"ruby":1},"mocking":{"ruby":1},"arbitrary":{"ruby":1},"initialize":{"ruby":1},"ARGV":{"ruby":1},"help_formatter_alias_defaults":{"ruby":1},"program_defaults":{"ruby":1},"create_default_commands":{"ruby":1},"singleton":{"ruby":1},"Run":{"ruby":1},"execution":{"ruby":1},"trace":{"ruby":1},"require_program":{"ruby":1},"trap":{"ruby":1},"INT":{"ruby":1},"int_message":{"ruby":1},"int_block":{"ruby":1},"global_option":{"ruby":1},"Display":{"ruby":1},"say":{"ruby":1,"shell":1},"backtrace":{"ruby":1},"occurs":{"ruby":1},"parse_global_options":{"ruby":1},"remove_global_options":{"ruby":1},"unless":{"ruby":1},"run_active_command":{"ruby":1},"rescue":{"ruby":1},"OptionParser":{"ruby":1},"InvalidOption":{"ruby":1},"InvalidArgument":{"ruby":1},"MissingArgument":{"ruby":1},"to_s":{"ruby":1},"view":{"ruby":1},"Assign":{"ruby":1},"utility":{"ruby":1},"Anything":{"ruby":1},"Bye":{"ruby":1},"help_formatter":{"ruby":1},"compact":{"ruby":1},"HelpFormatter":{"ruby":1},"TerminalCompact":{"ruby":1},"Keys":{"ruby":1},"triple":{"ruby":1},"ex":{"ruby":1},"basename":{"ruby":1,"shell":1},"executable":{"ruby":1},"Defaults":{"ruby":1},"Terminal":{"ruby":1},"Allows":{"ruby":1},"blocks":{"ruby":1},"Message":{"ruby":1},"interrupted":{"ruby":1},"CTRL":{"ruby":1},"elsif":{"ruby":1},"Creates":{"ruby":1},"yields":{"ruby":1},"raising":{"ruby":1},"exist":{"ruby":1},"my_command":{"ruby":1},"when_called":{"ruby":1},"add_command":{"ruby":1},"follows":{"ruby":1},"switches":{"ruby":1},"separate_switches_from_description":{"ruby":1},"proc":{"ruby":1},"Alias":{"ruby":1},"_name_":{"ruby":1},"_alias_name_":{"ruby":1},"being":{"ruby":1,"shell":1},"straight":{"ruby":1},"alias_command":{"ruby":1},"alias_name":{"ruby":1},"default_command":{"ruby":1},"command_exists":{"ruby":1},"stopdoc":{"ruby":1},"active_command":{"ruby":1},"__active_command":{"ruby":1},"command_name_from_args":{"ruby":1},"Attempts":{"ruby":1},"locate":{"ruby":1},"Supports":{"ruby":1},"largest":{"ruby":1},"possible":{"ruby":1},"match":{"ruby":1},"__command_name_from_args":{"ruby":1},"valid_command_names_from":{"ruby":1},"dup":{"ruby":1},"arg_string":{"ruby":1},"delete_if":{"ruby":1},"find_all":{"ruby":1},"__help_formatter":{"ruby":1},"args_without_command_name":{"ruby":1},"essentially":{"ruby":1},"enable_paging":{"ruby":1},"render":{"ruby":1},"require_valid_command":{"ruby":1},"render_command":{"ruby":1},"_command_":{"ruby":1},"_options_":{"ruby":1},"prevents":{"ruby":1},"occurring":{"ruby":1},"flipflop":{"ruby":1},"please":{"ruby":1,"shell":1},"switchHasArg":{"ruby":1},"past_switch":{"ruby":1},"arg_removed":{"ruby":1},"inject":{"ruby":1},"global_option_proc":{"ruby":1},"offending":{"ruby":1},"reject":{"ruby":1},"allowing":{"ruby":1},"throughout":{"ruby":1},"proxy_options":{"ruby":1},"switch_to_sym":{"ruby":1},"_keys_":{"ruby":1},"separated":{"ruby":1,"shell":1},"is_a":{"ruby":1},"symbol":{"ruby":1},"some_switch":{"ruby":1},"FILE":{"ruby":1},"scan":{"ruby":1},"to_sym":{"ruby":1},"nodoc":{"ruby":1},"composure":{"shell":1},"erichs":{"shell":1},"hearted":{"shell":1},"intuitive":{"shell":1},"shell":{"shell":1},"programming":{"shell":1},"install":{"shell":1},"SHELL":{"shell":1},"rc":{"shell":1},"latest":{"shell":1},"git":{"shell":1},"known":{"shell":1},"bash":{"shell":1},"zsh":{"shell":1},"ksh93":{"shell":1},"plumbing":{"shell":1},"composure_keywords":{"shell":1},"echo":{"shell":1},"letterpress":{"shell":1},"typeset":{"shell":1},"rightcol":{"shell":1},"leftcol":{"shell":1},"fi":{"shell":1},"20s":{"shell":1},"transcribe":{"shell":1},"func":{"shell":1},"operation":{"shell":1},"cd":{"shell":1},"rev":{"shell":1},"Oops":{"shell":1},"inc":{"shell":1},"USE_COMPOSURE_REPO":{"shell":1},"yes":{"shell":1},"creating":{"shell":1},"mkdir":{"shell":1},"stores":{"shell":1},"README":{"shell":1},"initial":{"shell":1},"N":{"shell":1},"export":{"shell":1},"startup":{"shell":1},"disable":{"shell":1},"sorry":{"shell":1},"didn":{"shell":1},"esac":{"shell":1},"typeset_functions":{"shell":1},"unfortunately":{"shell":1},"easy":{"shell":1},"portable":{"shell":1},"assume":{"shell":1},"ll":{"shell":1},"harder":{"shell":1},"StackOverflow":{"shell":1},"ps":{"shell":1},"listing":{"shell":1},"print":{"shell":1},"CMD":{"shell":1},"stripping":{"shell":1},"hyphens":{"shell":1},"throws":{"shell":1},"ans":{"shell":1},"sed":{"shell":1},"awk":{"shell":1},"ksh":{"shell":1},"bootstrap":{"shell":1},"keywords":{"shell":1},"porcelain":{"shell":1},"eval":{"shell":1},"unset":{"shell":1},"creates":{"shell":1},"somewhere":{"shell":1},"alice":{"shell":1},"dynamic":{"shell":1},"wrappers":{"shell":1},"NOP":{"shell":1},"keyword":{"shell":1},"positional":{"shell":1},"parameter":{"shell":1},"stay":{"shell":1},"resident":{"shell":1},"ENV":{"shell":1},"opposed":{"shell":1},"BIG":{"shell":1},"caveat":{"shell":1},"roughly":{"shell":1},"parsable":{"shell":1},"contractions":{"shell":1},"consider":{"shell":1},"quoting":{"shell":1},"alphanumeric":{"shell":1},"draft":{"shell":1},"wraps":{"shell":1},"ls":{"shell":1},"newfunc":{"shell":1},"bind":{"shell":1},"tighter":{"shell":1},"disallow":{"shell":1},"grep":{"shell":1},"another":{"shell":1},"fc":{"shell":1},"fix":{"shell":1},"corrective":{"shell":1},"lenses":{"shell":1},"myopic":{"shell":1},"ln":{"shell":1},"digit":{"shell":1},"mktemp":{"shell":1},"tmp":{"shell":1},"XXXX":{"shell":1},"rm":{"shell":1},"glossary":{"shell":1},"displays":{"shell":1},"misc":{"shell":1},"targetgroup":{"shell":1},"metafor":{"shell":1},"skip":{"shell":1},"matching":{"shell":1},"prints":{"shell":1},"fu":{"shell":1},"retrieval":{"shell":1},"ignore":{"shell":1},"thru":{"shell":1},"apidoc":{"shell":1},"revise":{"shell":1},"examples":{"shell":1},"revision":{"shell":1},"myfunction":{"shell":1},"populate":{"shell":1},"tempfile":{"shell":1},"cat":{"shell":1},"versioned":{"shell":1},"EDITOR":{"shell":1},"edited":{"shell":1},"composed":{"shell":1},"stdout":{"shell":1},"finddown":{"shell":1},"END":{"shell":1},"enable":{"shell":1},"EOF":{"shell":1},"MIT":{"shell":1},"Erich":{"shell":1},"Smith":{"shell":1},"usr":{"shell":1},"holman":{"shell":1},"Generates":{"shell":1},"sparklines":{"shell":1},"generator":{"shell":1},"inspiration":{"shell":1},"datacollective":{"shell":1},"sparkblocks":{"shell":1},"takes":{"shell":1},"Prints":{"shell":1},"USAGE":{"shell":1},"VALUE":{"shell":1},"EXAMPLES":{"shell":1},"0xffffffff":{"shell":1},"Linux":{"shell":1},"bash4":{"shell":1},"0f":{"shell":1},"round":{"shell":1},"OS":{"shell":1},"bash3":{"shell":1},"cut":{"shell":1},"ticks":{"shell":1},"sourced":{"shell":1},"worry":{"shell":1},"BASH_SOURCE":{"shell":1},"eq":{"shell":1},"stdin":{"shell":1}}}'); + +/***/ }), + +/***/ 84751: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"ags":"AGS Script","aspx":"ASP","aspx-vb":"ASP","ats2":"ATS","actionscript 3":"ActionScript","actionscript3":"ActionScript","as3":"ActionScript","ada95":"Ada","ada2005":"Ada","aconf":"ApacheConf","apache":"ApacheConf","osascript":"AppleScript","nasm":"Assembly","ahk":"AutoHotkey","au3":"AutoIt","AutoIt3":"AutoIt","AutoItScript":"AutoIt","bat":"Batchfile","batch":"Batchfile","dosbatch":"Batchfile","winbatch":"Batchfile","b3d":"BlitzBasic","blitz3d":"BlitzBasic","blitzplus":"BlitzBasic","bplus":"BlitzBasic","bmax":"BlitzMax","csharp":"C#","cpp":"C++","c2hs":"C2hs Haskell","Carto":"CartoCSS","chpl":"Chapel","coffee":"CoffeeScript","coffee-script":"CoffeeScript","cfm":"ColdFusion","cfml":"ColdFusion","coldfusion html":"ColdFusion","cfc":"ColdFusion CFC","lisp":"Common Lisp","delphi":"Component Pascal","objectpascal":"Component Pascal","c++-objdumb":"Cpp-ObjDump","gherkin":"Cucumber","pyrex":"Cython","dcl":"DIGITAL Command Language","byond":"DM","dtrace-script":"DTrace","dpatch":"Darcs Patch","udiff":"Diff","elisp":"Emacs Lisp","emacs":"Emacs Lisp","fsharp":"F#","xml+genshi":"Genshi","xml+kid":"Genshi","pot":"Gettext Catalog","gf":"Grammatical Framework","nroff":"Groff","gsp":"Groovy Server Pages","java server page":"Groovy Server Pages","xhtml":"HTML","html+django/jinja":"HTML+Django","html+jinja":"HTML+Django","htmldjango":"HTML+Django","erb":"HTML+ERB","hbs":"Handlebars","htmlbars":"Handlebars","hylang":"Hy","igor":"IGOR Pro","igorpro":"IGOR Pro","dosini":"INI","irc":"IRC log","irc logs":"IRC log","i7":"Inform 7","inform7":"Inform 7","jsp":"Java Server Pages","js":"JavaScript","node":"JavaScript","lassoscript":"Lasso","flex":"Lex","litcoffee":"Literate CoffeeScript","lhaskell":"Literate Haskell","lhs":"Literate Haskell","live-script":"LiveScript","ls":"LiveScript","mumps":"M","bsdmake":"Makefile","make":"Makefile","mf":"Makefile","mma":"Mathematica","max/msp":"Max","maxmsp":"Max","nginx configuration file":"Nginx","nixos":"Nix","nush":"Nu","obj-c":"Objective-C","objc":"Objective-C","objectivec":"Objective-C","obj-c++":"Objective-C++","objc++":"Objective-C++","objectivec++":"Objective-C++","obj-j":"Objective-J","objectivej":"Objective-J","objj":"Objective-J","progress":"OpenEdge ABL","openedge":"OpenEdge ABL","abl":"OpenEdge ABL","inc":"PHP","pasm":"Parrot Assembly","pir":"Parrot Internal Representation","postscr":"PostScript","posh":"PowerShell","protobuf":"Protocol Buffer","Protocol Buffers":"Protocol Buffer","rusthon":"Python","R":"R","Rscript":"R","splus":"R","html+ruby":"RHTML","ragel-rb":"Ragel in Ruby Host","ragel-ruby":"Ragel in Ruby Host","raw":"Raw token data","red/system":"Red","jruby":"Ruby","macruby":"Ruby","rake":"Ruby","rb":"Ruby","rbx":"Ruby","saltstate":"SaltStack","salt":"SaltStack","sh":"Shell","bash":"Shell","zsh":"Shell","bash session":"ShellSession","console":"ShellSession","squeak":"Smalltalk","sourcemod":"SourcePawn","sml":"Standard ML","latex":"TeX","fundamental":"Text","ts":"TypeScript","vim":"VimL","nvim":"VimL","vb.net":"Visual Basic","vbnet":"Visual Basic","rss":"XML","xsd":"XML","wsdl":"XML","xsl":"XSLT","yml":"YAML","rst":"reStructuredText","advpl":"xBase","clipper":"xBase","foxpro":"xBase"}'); + +/***/ }), + +/***/ 3561: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{".abap":"ABAP",".asc":"Public Key",".ash":"AGS Script",".ampl":"AMPL",".mod":"XML",".g4":"ANTLR",".apib":"API Blueprint",".apl":"APL",".dyalog":"APL",".asp":"ASP",".asax":"ASP",".ascx":"ASP",".ashx":"ASP",".asmx":"ASP",".aspx":"ASP",".axd":"ASP",".dats":"ATS",".hats":"ATS",".sats":"ATS",".as":"ActionScript",".adb":"Ada",".ada":"Ada",".ads":"Ada",".agda":"Agda",".als":"Alloy",".apacheconf":"ApacheConf",".vhost":"Nginx",".cls":"Visual Basic",".applescript":"AppleScript",".scpt":"AppleScript",".arc":"Arc",".ino":"Arduino",".asciidoc":"AsciiDoc",".adoc":"AsciiDoc",".aj":"AspectJ",".asm":"Assembly",".a51":"Assembly",".inc":"SourcePawn",".nasm":"Assembly",".aug":"Augeas",".ahk":"AutoHotkey",".ahkl":"AutoHotkey",".au3":"AutoIt",".awk":"Awk",".auk":"Awk",".gawk":"Awk",".mawk":"Awk",".nawk":"Awk",".bat":"Batchfile",".cmd":"Batchfile",".befunge":"Befunge",".bison":"Bison",".bb":"BlitzBasic",".decls":"BlitzBasic",".bmx":"BlitzMax",".bsv":"Bluespec",".boo":"Boo",".b":"Limbo",".bf":"HyPhy",".brs":"Brightscript",".bro":"Bro",".c":"C",".cats":"C",".h":"Objective-C",".idc":"C",".w":"C",".cs":"Smalltalk",".cshtml":"C#",".csx":"C#",".cpp":"C++",".c++":"C++",".cc":"C++",".cp":"Component Pascal",".cxx":"C++",".h++":"C++",".hh":"Hack",".hpp":"C++",".hxx":"C++",".inl":"C++",".ipp":"C++",".tcc":"C++",".tpp":"C++",".c-objdump":"C-ObjDump",".chs":"C2hs Haskell",".clp":"CLIPS",".cmake":"CMake",".cmake.in":"CMake",".cob":"COBOL",".cbl":"COBOL",".ccp":"COBOL",".cobol":"COBOL",".cpy":"COBOL",".css":"CSS",".capnp":"Cap\'n Proto",".mss":"CartoCSS",".ceylon":"Ceylon",".chpl":"Chapel",".ch":"xBase",".ck":"ChucK",".cirru":"Cirru",".clw":"Clarion",".icl":"Clean",".dcl":"Clean",".clj":"Clojure",".boot":"Clojure",".cl2":"Clojure",".cljc":"Clojure",".cljs":"Clojure",".cljs.hl":"Clojure",".cljscm":"Clojure",".cljx":"Clojure",".hic":"Clojure",".coffee":"CoffeeScript","._coffee":"CoffeeScript",".cjsx":"CoffeeScript",".cson":"CoffeeScript",".iced":"CoffeeScript",".cfm":"ColdFusion",".cfml":"ColdFusion",".cfc":"ColdFusion CFC",".lisp":"NewLisp",".asd":"Common Lisp",".cl":"OpenCL",".l":"PicoLisp",".lsp":"NewLisp",".ny":"Common Lisp",".podsl":"Common Lisp",".sexp":"Common Lisp",".cps":"Component Pascal",".coq":"Coq",".v":"Verilog",".cppobjdump":"Cpp-ObjDump",".c++-objdump":"Cpp-ObjDump",".c++objdump":"Cpp-ObjDump",".cpp-objdump":"Cpp-ObjDump",".cxx-objdump":"Cpp-ObjDump",".creole":"Creole",".cr":"Crystal",".feature":"Cucumber",".cu":"Cuda",".cuh":"Cuda",".cy":"Cycript",".pyx":"Cython",".pxd":"Cython",".pxi":"Cython",".d":"Makefile",".di":"D",".d-objdump":"D-ObjDump",".com":"DIGITAL Command Language",".dm":"DM",".zone":"DNS Zone",".arpa":"DNS Zone",".darcspatch":"Darcs Patch",".dpatch":"Darcs Patch",".dart":"Dart",".diff":"Diff",".patch":"Diff",".dockerfile":"Dockerfile",".djs":"Dogescript",".dylan":"Dylan",".dyl":"Dylan",".intr":"Dylan",".lid":"Dylan",".e":"Eiffel",".ecl":"ECLiPSe",".eclxml":"ECL",".sch":"KiCad",".brd":"Eagle",".epj":"Ecere Projects",".ex":"Elixir",".exs":"Elixir",".elm":"Elm",".el":"Emacs Lisp",".emacs":"Emacs Lisp",".emacs.desktop":"Emacs Lisp",".em":"EmberScript",".emberscript":"EmberScript",".erl":"Erlang",".es":"Erlang",".escript":"Erlang",".hrl":"Erlang",".fs":"GLSL",".fsi":"F#",".fsx":"F#",".fx":"FLUX",".flux":"FLUX",".f90":"FORTRAN",".f":"Forth",".f03":"FORTRAN",".f08":"FORTRAN",".f77":"FORTRAN",".f95":"FORTRAN",".for":"Forth",".fpp":"FORTRAN",".factor":"Factor",".fy":"Fancy",".fancypack":"Fancy",".fan":"Fantom",".fth":"Forth",".4th":"Forth",".forth":"Forth",".fr":"Text",".frt":"Forth",".g":"GAP",".gco":"G-code",".gcode":"G-code",".gms":"GAMS",".gap":"GAP",".gd":"GDScript",".gi":"GAP",".tst":"Scilab",".s":"GAS",".ms":"Groff",".glsl":"GLSL",".fp":"GLSL",".frag":"JavaScript",".frg":"GLSL",".fshader":"GLSL",".geo":"GLSL",".geom":"GLSL",".glslv":"GLSL",".gshader":"GLSL",".shader":"GLSL",".vert":"GLSL",".vrx":"GLSL",".vshader":"GLSL",".gml":"XML",".kid":"Genshi",".ebuild":"Gentoo Ebuild",".eclass":"Gentoo Eclass",".po":"Gettext Catalog",".pot":"Gettext Catalog",".glf":"Glyph",".gp":"Gnuplot",".gnu":"Gnuplot",".gnuplot":"Gnuplot",".plot":"Gnuplot",".plt":"Gnuplot",".go":"Go",".golo":"Golo",".gs":"JavaScript",".gst":"Gosu",".gsx":"Gosu",".vark":"Gosu",".grace":"Grace",".gradle":"Gradle",".gf":"Grammatical Framework",".dot":"Graphviz (DOT)",".gv":"Graphviz (DOT)",".man":"Groff",".1":"Groff",".1in":"Groff",".1m":"Groff",".1x":"Groff",".2":"Groff",".3":"Groff",".3in":"Groff",".3m":"Groff",".3qt":"Groff",".3x":"Groff",".4":"Groff",".5":"Groff",".6":"Groff",".7":"Groff",".8":"Groff",".9":"Groff",".n":"Nemerle",".rno":"Groff",".roff":"Groff",".groovy":"Groovy",".grt":"Groovy",".gtpl":"Groovy",".gvy":"Groovy",".gsp":"Groovy Server Pages",".hcl":"HCL",".tf":"HCL",".html":"HTML",".htm":"HTML",".html.hl":"HTML",".st":"Smalltalk",".xht":"HTML",".xhtml":"HTML",".mustache":"HTML+Django",".jinja":"HTML+Django",".erb":"HTML+ERB",".erb.deface":"HTML+ERB",".phtml":"HTML+PHP",".http":"HTTP",".php":"PHP",".haml":"Haml",".haml.deface":"Haml",".handlebars":"Handlebars",".hbs":"Handlebars",".hb":"Harbour",".hs":"Haskell",".hsc":"Haskell",".hx":"Haxe",".hxsl":"Haxe",".hy":"Hy",".pro":"QMake",".dlm":"IDL",".ipf":"IGOR Pro",".ini":"INI",".cfg":"INI",".prefs":"INI",".properties":"INI",".irclog":"IRC log",".weechatlog":"IRC log",".idr":"Idris",".lidr":"Idris",".ni":"Inform 7",".i7x":"Inform 7",".iss":"Inno Setup",".io":"Io",".ik":"Ioke",".thy":"Isabelle",".ijs":"J",".flex":"JFlex",".jflex":"JFlex",".json":"JSON",".lock":"JSON",".json5":"JSON5",".jsonld":"JSONLD",".jq":"JSONiq",".jade":"Jade",".j":"Objective-J",".java":"Java",".jsp":"Java Server Pages",".js":"JavaScript","._js":"JavaScript",".bones":"JavaScript",".es6":"JavaScript",".jake":"JavaScript",".jsb":"JavaScript",".jsfl":"JavaScript",".jsm":"JavaScript",".jss":"JavaScript",".jsx":"JavaScript",".njs":"JavaScript",".pac":"JavaScript",".sjs":"JavaScript",".ssjs":"JavaScript",".sublime-build":"JavaScript",".sublime-commands":"JavaScript",".sublime-completions":"JavaScript",".sublime-keymap":"JavaScript",".sublime-macro":"JavaScript",".sublime-menu":"JavaScript",".sublime-mousemap":"JavaScript",".sublime-project":"JavaScript",".sublime-settings":"JavaScript",".sublime-theme":"JavaScript",".sublime-workspace":"JavaScript",".sublime_metrics":"JavaScript",".sublime_session":"JavaScript",".xsjs":"JavaScript",".xsjslib":"JavaScript",".jl":"Julia",".krl":"KRL",".kicad_pcb":"KiCad",".kit":"Kit",".kt":"Kotlin",".ktm":"Kotlin",".kts":"Kotlin",".lfe":"LFE",".ll":"LLVM",".lol":"LOLCODE",".lsl":"LSL",".lvproj":"LabVIEW",".lasso":"Lasso",".las":"Lasso",".lasso8":"Lasso",".lasso9":"Lasso",".ldml":"Lasso",".latte":"Latte",".lean":"Lean",".hlean":"Lean",".less":"Less",".lex":"Lex",".ly":"LilyPond",".ily":"LilyPond",".m":"Objective-C",".ld":"Linker Script",".lds":"Linker Script",".liquid":"Liquid",".lagda":"Literate Agda",".litcoffee":"Literate CoffeeScript",".lhs":"Literate Haskell",".ls":"LoomScript","._ls":"LiveScript",".xm":"Logos",".x":"Logos",".xi":"Logos",".lgt":"Logtalk",".logtalk":"Logtalk",".lookml":"LookML",".lua":"Lua",".fcgi":"Shell",".nse":"Lua",".pd_lua":"Lua",".rbxs":"Lua",".wlua":"Lua",".mumps":"M",".mtml":"MTML",".muf":"MUF",".mak":"Makefile",".mk":"Makefile",".mako":"Mako",".mao":"Mako",".md":"Markdown",".markdown":"Markdown",".mkd":"Markdown",".mkdn":"Markdown",".mkdown":"Markdown",".ron":"Markdown",".mask":"Mask",".mathematica":"Mathematica",".cdf":"Mathematica",".ma":"Mathematica",".nb":"Mathematica",".nbp":"Mathematica",".wl":"Mathematica",".wlt":"Mathematica",".matlab":"Matlab",".maxpat":"Max",".maxhelp":"Max",".maxproj":"Max",".mxt":"Max",".pat":"Max",".mediawiki":"MediaWiki",".moo":"Moocode",".minid":"MiniD",".druby":"Mirah",".duby":"Mirah",".mir":"Mirah",".mirah":"Mirah",".mo":"Modelica",".mms":"Module Management System",".mmk":"Module Management System",".monkey":"Monkey",".moon":"MoonScript",".myt":"Myghty",".ncl":"Text",".nl":"NewLisp",".nsi":"NSIS",".nsh":"NSIS",".axs":"NetLinx",".axi":"NetLinx",".axs.erb":"NetLinx+ERB",".axi.erb":"NetLinx+ERB",".nlogo":"NetLogo",".nginxconf":"Nginx",".nim":"Nimrod",".nimrod":"Nimrod",".ninja":"Ninja",".nit":"Nit",".nix":"Nix",".nu":"Nu",".numpy":"NumPy",".numpyw":"NumPy",".numsc":"NumPy",".ml":"Standard ML",".eliom":"OCaml",".eliomi":"OCaml",".ml4":"OCaml",".mli":"OCaml",".mll":"OCaml",".mly":"OCaml",".objdump":"ObjDump",".mm":"XML",".sj":"Objective-J",".omgrofl":"Omgrofl",".opa":"Opa",".opal":"Opal",".opencl":"OpenCL",".p":"OpenEdge ABL",".scad":"OpenSCAD",".org":"Org",".ox":"Ox",".oxh":"Ox",".oxo":"Ox",".oxygene":"Oxygene",".oz":"Oz",".pwn":"PAWN",".aw":"PHP",".ctp":"PHP",".php3":"PHP",".php4":"PHP",".php5":"PHP",".phpt":"PHP",".pls":"PLSQL",".pkb":"PLSQL",".pks":"PLSQL",".plb":"PLSQL",".plsql":"PLSQL",".sql":"SQLPL",".pan":"Pan",".psc":"Papyrus",".parrot":"Parrot",".pasm":"Parrot Assembly",".pir":"Parrot Internal Representation",".pas":"Pascal",".dfm":"Pascal",".dpr":"Pascal",".lpr":"Pascal",".pp":"Puppet",".pl":"Prolog",".al":"Perl",".cgi":"Shell",".perl":"Perl",".ph":"Perl",".plx":"Perl",".pm":"Perl6",".pod":"Pod",".psgi":"Perl",".t":"Turing",".6pl":"Perl6",".6pm":"Perl6",".nqp":"Perl6",".p6":"Perl6",".p6l":"Perl6",".p6m":"Perl6",".pl6":"Perl6",".pm6":"Perl6",".pig":"PigLatin",".pike":"Pike",".pmod":"Pike",".pogo":"PogoScript",".ps":"PostScript",".eps":"PostScript",".ps1":"PowerShell",".psd1":"PowerShell",".psm1":"PowerShell",".pde":"Processing",".prolog":"Prolog",".spin":"Propeller Spin",".proto":"Protocol Buffer",".pub":"Public Key",".pd":"Pure Data",".pb":"PureBasic",".pbi":"PureBasic",".purs":"PureScript",".py":"Python",".gyp":"Python",".lmi":"Python",".pyde":"Python",".pyp":"Python",".pyt":"Python",".pyw":"Python",".tac":"Python",".wsgi":"Python",".xpy":"Python",".pytb":"Python traceback",".qml":"QML",".qbs":"QML",".pri":"QMake",".r":"Rebol",".rd":"R",".rsx":"R",".raml":"RAML",".rdoc":"RDoc",".rbbas":"REALbasic",".rbfrm":"REALbasic",".rbmnu":"REALbasic",".rbres":"REALbasic",".rbtbar":"REALbasic",".rbuistate":"REALbasic",".rhtml":"RHTML",".rmd":"RMarkdown",".rkt":"Racket",".rktd":"Racket",".rktl":"Racket",".scrbl":"Racket",".rl":"Ragel in Ruby Host",".raw":"Raw token data",".reb":"Rebol",".r2":"Rebol",".r3":"Rebol",".rebol":"Rebol",".red":"Red",".reds":"Red",".cw":"Redcode",".rs":"Rust",".rsh":"RenderScript",".robot":"RobotFramework",".rg":"Rouge",".rb":"Ruby",".builder":"Ruby",".gemspec":"Ruby",".god":"Ruby",".irbrc":"Ruby",".jbuilder":"Ruby",".mspec":"Ruby",".pluginspec":"XML",".podspec":"Ruby",".rabl":"Ruby",".rake":"Ruby",".rbuild":"Ruby",".rbw":"Ruby",".rbx":"Ruby",".ru":"Ruby",".ruby":"Ruby",".thor":"Ruby",".watchr":"Ruby",".sas":"SAS",".scss":"SCSS",".smt2":"SMT",".smt":"SMT",".sparql":"SPARQL",".rq":"SPARQL",".sqf":"SQF",".hqf":"SQF",".cql":"SQL",".ddl":"SQL",".prc":"SQL",".tab":"SQL",".udf":"SQL",".viw":"SQL",".db2":"SQLPL",".ston":"STON",".svg":"SVG",".sage":"Sage",".sagews":"Sage",".sls":"Scheme",".sass":"Sass",".scala":"Scala",".sbt":"Scala",".sc":"SuperCollider",".scaml":"Scaml",".scm":"Scheme",".sld":"Scheme",".sps":"Scheme",".ss":"Scheme",".sci":"Scilab",".sce":"Scilab",".self":"Self",".sh":"Shell",".bash":"Shell",".bats":"Shell",".command":"Shell",".ksh":"Shell",".tmux":"Shell",".tool":"Shell",".zsh":"Shell",".sh-session":"ShellSession",".shen":"Shen",".sl":"Slash",".slim":"Slim",".smali":"Smali",".tpl":"Smarty",".sp":"SourcePawn",".sma":"SourcePawn",".nut":"Squirrel",".fun":"Standard ML",".sig":"Standard ML",".sml":"Standard ML",".do":"Stata",".ado":"Stata",".doh":"Stata",".ihlp":"Stata",".mata":"Stata",".matah":"Stata",".sthlp":"Stata",".styl":"Stylus",".scd":"SuperCollider",".swift":"Swift",".sv":"SystemVerilog",".svh":"SystemVerilog",".vh":"SystemVerilog",".toml":"TOML",".txl":"TXL",".tcl":"Tcl",".adp":"Tcl",".tm":"Tcl",".tcsh":"Tcsh",".csh":"Tcsh",".tex":"TeX",".aux":"TeX",".bbx":"TeX",".bib":"TeX",".cbx":"TeX",".dtx":"TeX",".ins":"TeX",".lbx":"TeX",".ltx":"TeX",".mkii":"TeX",".mkiv":"TeX",".mkvi":"TeX",".sty":"TeX",".toc":"TeX",".tea":"Tea",".txt":"Text",".textile":"Textile",".thrift":"Thrift",".tu":"Turing",".ttl":"Turtle",".twig":"Twig",".ts":"XML",".upc":"Unified Parallel C",".anim":"Unity3D Asset",".asset":"Unity3D Asset",".mat":"Unity3D Asset",".meta":"Unity3D Asset",".prefab":"Unity3D Asset",".unity":"Unity3D Asset",".uc":"UnrealScript",".vcl":"VCL",".vhdl":"VHDL",".vhd":"VHDL",".vhf":"VHDL",".vhi":"VHDL",".vho":"VHDL",".vhs":"VHDL",".vht":"VHDL",".vhw":"VHDL",".vala":"Vala",".vapi":"Vala",".veo":"Verilog",".vim":"VimL",".vb":"Visual Basic",".bas":"Visual Basic",".frm":"Visual Basic",".frx":"Visual Basic",".vba":"Visual Basic",".vbhtml":"Visual Basic",".vbs":"Visual Basic",".volt":"Volt",".vue":"Vue",".owl":"Web Ontology Language",".webidl":"WebIDL",".xc":"XC",".xml":"XML",".ant":"XML",".axml":"XML",".ccxml":"XML",".clixml":"XML",".cproject":"XML",".csproj":"XML",".ct":"XML",".dita":"XML",".ditamap":"XML",".ditaval":"XML",".dll.config":"XML",".filters":"XML",".fsproj":"XML",".fxml":"XML",".glade":"XML",".grxml":"XML",".iml":"XML",".ivy":"XML",".jelly":"XML",".kml":"XML",".launch":"XML",".mdpolicy":"XML",".mxml":"XML",".nproj":"XML",".nuspec":"XML",".odd":"XML",".osm":"XML",".plist":"XML",".ps1xml":"XML",".psc1":"XML",".pt":"XML",".rdf":"XML",".rss":"XML",".scxml":"XML",".srdf":"XML",".storyboard":"XML",".sttheme":"XML",".sublime-snippet":"XML",".targets":"XML",".tmcommand":"XML",".tml":"XML",".tmlanguage":"XML",".tmpreferences":"XML",".tmsnippet":"XML",".tmtheme":"XML",".ui":"XML",".urdf":"XML",".vbproj":"XML",".vcxproj":"XML",".vxml":"XML",".wsdl":"XML",".wsf":"XML",".wxi":"XML",".wxl":"XML",".wxs":"XML",".x3d":"XML",".xacro":"XML",".xaml":"XML",".xib":"XML",".xlf":"XML",".xliff":"XML",".xmi":"XML",".xml.dist":"XML",".xsd":"XML",".xul":"XML",".zcml":"XML",".xsp-config":"XPages",".xsp.metadata":"XPages",".xpl":"XProc",".xproc":"XProc",".xquery":"XQuery",".xq":"XQuery",".xql":"XQuery",".xqm":"XQuery",".xqy":"XQuery",".xs":"XS",".xslt":"XSLT",".xsl":"XSLT",".xojo_code":"Xojo",".xojo_menu":"Xojo",".xojo_report":"Xojo",".xojo_script":"Xojo",".xojo_toolbar":"Xojo",".xojo_window":"Xojo",".xtend":"Xtend",".yml":"YAML",".reek":"YAML",".rviz":"YAML",".syntax":"YAML",".yaml":"YAML",".yaml-tmlanguage":"YAML",".y":"Yacc",".yacc":"Yacc",".yy":"Yacc",".zep":"Zephir",".zimpl":"Zimpl",".zmpl":"Zimpl",".zpl":"Zimpl",".desktop":"desktop",".desktop.in":"desktop",".ec":"eC",".eh":"eC",".edn":"edn",".fish":"fish",".mu":"mupad",".nc":"nesC",".ooc":"ooc",".rst":"reStructuredText",".rest":"reStructuredText",".wisp":"wisp",".prg":"xBase",".prw":"xBase"}'); + +/***/ }), + +/***/ 87086: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"ant.xml":"Ant Build System","build.xml":"Ant Build System","CMakeLists.txt":"CMake","riemann.config":"Clojure","Cakefile":"CoffeeScript","Dockerfile":"Dockerfile","mix.lock":"Elixir",".emacs":"Emacs Lisp",".emacs.desktop":"Emacs Lisp","rebar.config":"Erlang","rebar.config.lock":"Erlang","rebar.lock":"Erlang",".factor-boot-rc":"Factor",".factor-rc":"Factor","Fakefile":"Fancy","ROOT":"Isabelle ROOT",".jshintrc":"JSON","composer.lock":"JSON","Jakefile":"JavaScript","ld.script":"Linker Script","Slakefile":"LiveScript","GNUmakefile":"Makefile","Kbuild":"Makefile","Makefile":"Makefile","Makefile.inc":"Makefile","makefile":"Makefile","pom.xml":"Maven POM","descrip.mmk":"Module Management System","descrip.mms":"Module Management System","nginx.conf":"Nginx","Nukefile":"Nu","Phakefile":"PHP","Rexfile":"Perl6","Modulefile":"Puppet","BUILD":"Python","SConscript":"Python","SConstruct":"Python","Snakefile":"Python","wscript":"Python",".Rprofile":"R",".pryrc":"Ruby","Appraisals":"Ruby","Berksfile":"Ruby","Brewfile":"Ruby","Buildfile":"Ruby","Deliverfile":"Ruby","Fastfile":"Ruby","Gemfile":"Ruby","Gemfile.lock":"Ruby","Guardfile":"Ruby","Jarfile":"Ruby","Mavenfile":"Ruby","Podfile":"Ruby","Puppetfile":"Ruby","Snapfile":"Ruby","Thorfile":"Ruby","Vagrantfile":"Ruby","buildfile":"Ruby",".nvimrc":"VimL",".vimrc":"VimL","_vimrc":"VimL","gvimrc":"VimL","nvimrc":"VimL","vimrc":"VimL",".classpath":"XML",".project":"XML","Settings.StyleCop":"XML","Web.Debug.config":"XML","Web.Release.config":"XML","Web.config":"XML","packages.config":"XML"}'); + +/***/ }), + +/***/ 358: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"osascript":"AppleScript","awk":"Awk","gawk":"Awk","mawk":"Awk","nawk":"Awk","tcc":"C","coffee":"CoffeeScript","lisp":"Common Lisp","sbcl":"Common Lisp","ccl":"Common Lisp","clisp":"Common Lisp","ecl":"Common Lisp","crystal":"Crystal","dtrace":"DTrace","escript":"Erlang","gnuplot":"Gnuplot","groovy":"Groovy","ioke":"Ioke","node":"JavaScript","lsl":"LSL","lua":"Lua","make":"Makefile","mmi":"Mercury","moon":"MoonScript","newlisp":"NewLisp","nush":"Nu","ocaml":"OCaml","ocamlrun":"OCaml","php":"PHP","parrot":"Parrot Internal Representation","perl":"Perl","perl6":"Perl6","picolisp":"PicoLisp","pil":"PicoLisp","pike":"Pike","swipl":"Prolog","python":"Python","python2":"Python","python3":"Python","qmake":"QMake","Rscript":"R","racket":"Racket","ruby":"Ruby","macruby":"Ruby","rake":"Ruby","jruby":"Ruby","rbx":"Ruby","boolector":"SMT","cvc4":"SMT","mathsat5":"SMT","opensmt":"SMT","smtinterpol":"SMT","smt-rat":"SMT","stp":"SMT","verit":"SMT","yices2":"SMT","z3":"SMT","scala":"Scala","guile":"Scheme","bigloo":"Scheme","chicken":"Scheme","bash":"Shell","rc":"Shell","sh":"Shell","zsh":"Shell","tclsh":"Tcl","wish":"Tcl"}'); + +/***/ }), + +/***/ 53765: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"application/1d-interleaved-parityfec":{"source":"iana"},"application/3gpdash-qoe-report+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/3gpp-ims+xml":{"source":"iana","compressible":true},"application/3gpphal+json":{"source":"iana","compressible":true},"application/3gpphalforms+json":{"source":"iana","compressible":true},"application/a2l":{"source":"iana"},"application/ace+cbor":{"source":"iana"},"application/activemessage":{"source":"iana"},"application/activity+json":{"source":"iana","compressible":true},"application/alto-costmap+json":{"source":"iana","compressible":true},"application/alto-costmapfilter+json":{"source":"iana","compressible":true},"application/alto-directory+json":{"source":"iana","compressible":true},"application/alto-endpointcost+json":{"source":"iana","compressible":true},"application/alto-endpointcostparams+json":{"source":"iana","compressible":true},"application/alto-endpointprop+json":{"source":"iana","compressible":true},"application/alto-endpointpropparams+json":{"source":"iana","compressible":true},"application/alto-error+json":{"source":"iana","compressible":true},"application/alto-networkmap+json":{"source":"iana","compressible":true},"application/alto-networkmapfilter+json":{"source":"iana","compressible":true},"application/alto-updatestreamcontrol+json":{"source":"iana","compressible":true},"application/alto-updatestreamparams+json":{"source":"iana","compressible":true},"application/aml":{"source":"iana"},"application/andrew-inset":{"source":"iana","extensions":["ez"]},"application/applefile":{"source":"iana"},"application/applixware":{"source":"apache","extensions":["aw"]},"application/at+jwt":{"source":"iana"},"application/atf":{"source":"iana"},"application/atfx":{"source":"iana"},"application/atom+xml":{"source":"iana","compressible":true,"extensions":["atom"]},"application/atomcat+xml":{"source":"iana","compressible":true,"extensions":["atomcat"]},"application/atomdeleted+xml":{"source":"iana","compressible":true,"extensions":["atomdeleted"]},"application/atomicmail":{"source":"iana"},"application/atomsvc+xml":{"source":"iana","compressible":true,"extensions":["atomsvc"]},"application/atsc-dwd+xml":{"source":"iana","compressible":true,"extensions":["dwd"]},"application/atsc-dynamic-event-message":{"source":"iana"},"application/atsc-held+xml":{"source":"iana","compressible":true,"extensions":["held"]},"application/atsc-rdt+json":{"source":"iana","compressible":true},"application/atsc-rsat+xml":{"source":"iana","compressible":true,"extensions":["rsat"]},"application/atxml":{"source":"iana"},"application/auth-policy+xml":{"source":"iana","compressible":true},"application/bacnet-xdd+zip":{"source":"iana","compressible":false},"application/batch-smtp":{"source":"iana"},"application/bdoc":{"compressible":false,"extensions":["bdoc"]},"application/beep+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/calendar+json":{"source":"iana","compressible":true},"application/calendar+xml":{"source":"iana","compressible":true,"extensions":["xcs"]},"application/call-completion":{"source":"iana"},"application/cals-1840":{"source":"iana"},"application/captive+json":{"source":"iana","compressible":true},"application/cbor":{"source":"iana"},"application/cbor-seq":{"source":"iana"},"application/cccex":{"source":"iana"},"application/ccmp+xml":{"source":"iana","compressible":true},"application/ccxml+xml":{"source":"iana","compressible":true,"extensions":["ccxml"]},"application/cdfx+xml":{"source":"iana","compressible":true,"extensions":["cdfx"]},"application/cdmi-capability":{"source":"iana","extensions":["cdmia"]},"application/cdmi-container":{"source":"iana","extensions":["cdmic"]},"application/cdmi-domain":{"source":"iana","extensions":["cdmid"]},"application/cdmi-object":{"source":"iana","extensions":["cdmio"]},"application/cdmi-queue":{"source":"iana","extensions":["cdmiq"]},"application/cdni":{"source":"iana"},"application/cea":{"source":"iana"},"application/cea-2018+xml":{"source":"iana","compressible":true},"application/cellml+xml":{"source":"iana","compressible":true},"application/cfw":{"source":"iana"},"application/city+json":{"source":"iana","compressible":true},"application/clr":{"source":"iana"},"application/clue+xml":{"source":"iana","compressible":true},"application/clue_info+xml":{"source":"iana","compressible":true},"application/cms":{"source":"iana"},"application/cnrp+xml":{"source":"iana","compressible":true},"application/coap-group+json":{"source":"iana","compressible":true},"application/coap-payload":{"source":"iana"},"application/commonground":{"source":"iana"},"application/conference-info+xml":{"source":"iana","compressible":true},"application/cose":{"source":"iana"},"application/cose-key":{"source":"iana"},"application/cose-key-set":{"source":"iana"},"application/cpl+xml":{"source":"iana","compressible":true,"extensions":["cpl"]},"application/csrattrs":{"source":"iana"},"application/csta+xml":{"source":"iana","compressible":true},"application/cstadata+xml":{"source":"iana","compressible":true},"application/csvm+json":{"source":"iana","compressible":true},"application/cu-seeme":{"source":"apache","extensions":["cu"]},"application/cwt":{"source":"iana"},"application/cybercash":{"source":"iana"},"application/dart":{"compressible":true},"application/dash+xml":{"source":"iana","compressible":true,"extensions":["mpd"]},"application/dash-patch+xml":{"source":"iana","compressible":true,"extensions":["mpp"]},"application/dashdelta":{"source":"iana"},"application/davmount+xml":{"source":"iana","compressible":true,"extensions":["davmount"]},"application/dca-rft":{"source":"iana"},"application/dcd":{"source":"iana"},"application/dec-dx":{"source":"iana"},"application/dialog-info+xml":{"source":"iana","compressible":true},"application/dicom":{"source":"iana"},"application/dicom+json":{"source":"iana","compressible":true},"application/dicom+xml":{"source":"iana","compressible":true},"application/dii":{"source":"iana"},"application/dit":{"source":"iana"},"application/dns":{"source":"iana"},"application/dns+json":{"source":"iana","compressible":true},"application/dns-message":{"source":"iana"},"application/docbook+xml":{"source":"apache","compressible":true,"extensions":["dbk"]},"application/dots+cbor":{"source":"iana"},"application/dskpp+xml":{"source":"iana","compressible":true},"application/dssc+der":{"source":"iana","extensions":["dssc"]},"application/dssc+xml":{"source":"iana","compressible":true,"extensions":["xdssc"]},"application/dvcs":{"source":"iana"},"application/ecmascript":{"source":"iana","compressible":true,"extensions":["es","ecma"]},"application/edi-consent":{"source":"iana"},"application/edi-x12":{"source":"iana","compressible":false},"application/edifact":{"source":"iana","compressible":false},"application/efi":{"source":"iana"},"application/elm+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/elm+xml":{"source":"iana","compressible":true},"application/emergencycalldata.cap+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/emergencycalldata.comment+xml":{"source":"iana","compressible":true},"application/emergencycalldata.control+xml":{"source":"iana","compressible":true},"application/emergencycalldata.deviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.ecall.msd":{"source":"iana"},"application/emergencycalldata.providerinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.serviceinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.subscriberinfo+xml":{"source":"iana","compressible":true},"application/emergencycalldata.veds+xml":{"source":"iana","compressible":true},"application/emma+xml":{"source":"iana","compressible":true,"extensions":["emma"]},"application/emotionml+xml":{"source":"iana","compressible":true,"extensions":["emotionml"]},"application/encaprtp":{"source":"iana"},"application/epp+xml":{"source":"iana","compressible":true},"application/epub+zip":{"source":"iana","compressible":false,"extensions":["epub"]},"application/eshop":{"source":"iana"},"application/exi":{"source":"iana","extensions":["exi"]},"application/expect-ct-report+json":{"source":"iana","compressible":true},"application/express":{"source":"iana","extensions":["exp"]},"application/fastinfoset":{"source":"iana"},"application/fastsoap":{"source":"iana"},"application/fdt+xml":{"source":"iana","compressible":true,"extensions":["fdt"]},"application/fhir+json":{"source":"iana","charset":"UTF-8","compressible":true},"application/fhir+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/fido.trusted-apps+json":{"compressible":true},"application/fits":{"source":"iana"},"application/flexfec":{"source":"iana"},"application/font-sfnt":{"source":"iana"},"application/font-tdpfr":{"source":"iana","extensions":["pfr"]},"application/font-woff":{"source":"iana","compressible":false},"application/framework-attributes+xml":{"source":"iana","compressible":true},"application/geo+json":{"source":"iana","compressible":true,"extensions":["geojson"]},"application/geo+json-seq":{"source":"iana"},"application/geopackage+sqlite3":{"source":"iana"},"application/geoxacml+xml":{"source":"iana","compressible":true},"application/gltf-buffer":{"source":"iana"},"application/gml+xml":{"source":"iana","compressible":true,"extensions":["gml"]},"application/gpx+xml":{"source":"apache","compressible":true,"extensions":["gpx"]},"application/gxf":{"source":"apache","extensions":["gxf"]},"application/gzip":{"source":"iana","compressible":false,"extensions":["gz"]},"application/h224":{"source":"iana"},"application/held+xml":{"source":"iana","compressible":true},"application/hjson":{"extensions":["hjson"]},"application/http":{"source":"iana"},"application/hyperstudio":{"source":"iana","extensions":["stk"]},"application/ibe-key-request+xml":{"source":"iana","compressible":true},"application/ibe-pkg-reply+xml":{"source":"iana","compressible":true},"application/ibe-pp-data":{"source":"iana"},"application/iges":{"source":"iana"},"application/im-iscomposing+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/index":{"source":"iana"},"application/index.cmd":{"source":"iana"},"application/index.obj":{"source":"iana"},"application/index.response":{"source":"iana"},"application/index.vnd":{"source":"iana"},"application/inkml+xml":{"source":"iana","compressible":true,"extensions":["ink","inkml"]},"application/iotp":{"source":"iana"},"application/ipfix":{"source":"iana","extensions":["ipfix"]},"application/ipp":{"source":"iana"},"application/isup":{"source":"iana"},"application/its+xml":{"source":"iana","compressible":true,"extensions":["its"]},"application/java-archive":{"source":"apache","compressible":false,"extensions":["jar","war","ear"]},"application/java-serialized-object":{"source":"apache","compressible":false,"extensions":["ser"]},"application/java-vm":{"source":"apache","compressible":false,"extensions":["class"]},"application/javascript":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["js","mjs"]},"application/jf2feed+json":{"source":"iana","compressible":true},"application/jose":{"source":"iana"},"application/jose+json":{"source":"iana","compressible":true},"application/jrd+json":{"source":"iana","compressible":true},"application/jscalendar+json":{"source":"iana","compressible":true},"application/json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["json","map"]},"application/json-patch+json":{"source":"iana","compressible":true},"application/json-seq":{"source":"iana"},"application/json5":{"extensions":["json5"]},"application/jsonml+json":{"source":"apache","compressible":true,"extensions":["jsonml"]},"application/jwk+json":{"source":"iana","compressible":true},"application/jwk-set+json":{"source":"iana","compressible":true},"application/jwt":{"source":"iana"},"application/kpml-request+xml":{"source":"iana","compressible":true},"application/kpml-response+xml":{"source":"iana","compressible":true},"application/ld+json":{"source":"iana","compressible":true,"extensions":["jsonld"]},"application/lgr+xml":{"source":"iana","compressible":true,"extensions":["lgr"]},"application/link-format":{"source":"iana"},"application/load-control+xml":{"source":"iana","compressible":true},"application/lost+xml":{"source":"iana","compressible":true,"extensions":["lostxml"]},"application/lostsync+xml":{"source":"iana","compressible":true},"application/lpf+zip":{"source":"iana","compressible":false},"application/lxf":{"source":"iana"},"application/mac-binhex40":{"source":"iana","extensions":["hqx"]},"application/mac-compactpro":{"source":"apache","extensions":["cpt"]},"application/macwriteii":{"source":"iana"},"application/mads+xml":{"source":"iana","compressible":true,"extensions":["mads"]},"application/manifest+json":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["webmanifest"]},"application/marc":{"source":"iana","extensions":["mrc"]},"application/marcxml+xml":{"source":"iana","compressible":true,"extensions":["mrcx"]},"application/mathematica":{"source":"iana","extensions":["ma","nb","mb"]},"application/mathml+xml":{"source":"iana","compressible":true,"extensions":["mathml"]},"application/mathml-content+xml":{"source":"iana","compressible":true},"application/mathml-presentation+xml":{"source":"iana","compressible":true},"application/mbms-associated-procedure-description+xml":{"source":"iana","compressible":true},"application/mbms-deregister+xml":{"source":"iana","compressible":true},"application/mbms-envelope+xml":{"source":"iana","compressible":true},"application/mbms-msk+xml":{"source":"iana","compressible":true},"application/mbms-msk-response+xml":{"source":"iana","compressible":true},"application/mbms-protection-description+xml":{"source":"iana","compressible":true},"application/mbms-reception-report+xml":{"source":"iana","compressible":true},"application/mbms-register+xml":{"source":"iana","compressible":true},"application/mbms-register-response+xml":{"source":"iana","compressible":true},"application/mbms-schedule+xml":{"source":"iana","compressible":true},"application/mbms-user-service-description+xml":{"source":"iana","compressible":true},"application/mbox":{"source":"iana","extensions":["mbox"]},"application/media-policy-dataset+xml":{"source":"iana","compressible":true,"extensions":["mpf"]},"application/media_control+xml":{"source":"iana","compressible":true},"application/mediaservercontrol+xml":{"source":"iana","compressible":true,"extensions":["mscml"]},"application/merge-patch+json":{"source":"iana","compressible":true},"application/metalink+xml":{"source":"apache","compressible":true,"extensions":["metalink"]},"application/metalink4+xml":{"source":"iana","compressible":true,"extensions":["meta4"]},"application/mets+xml":{"source":"iana","compressible":true,"extensions":["mets"]},"application/mf4":{"source":"iana"},"application/mikey":{"source":"iana"},"application/mipc":{"source":"iana"},"application/missing-blocks+cbor-seq":{"source":"iana"},"application/mmt-aei+xml":{"source":"iana","compressible":true,"extensions":["maei"]},"application/mmt-usd+xml":{"source":"iana","compressible":true,"extensions":["musd"]},"application/mods+xml":{"source":"iana","compressible":true,"extensions":["mods"]},"application/moss-keys":{"source":"iana"},"application/moss-signature":{"source":"iana"},"application/mosskey-data":{"source":"iana"},"application/mosskey-request":{"source":"iana"},"application/mp21":{"source":"iana","extensions":["m21","mp21"]},"application/mp4":{"source":"iana","extensions":["mp4s","m4p"]},"application/mpeg4-generic":{"source":"iana"},"application/mpeg4-iod":{"source":"iana"},"application/mpeg4-iod-xmt":{"source":"iana"},"application/mrb-consumer+xml":{"source":"iana","compressible":true},"application/mrb-publish+xml":{"source":"iana","compressible":true},"application/msc-ivr+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msc-mixer+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/msword":{"source":"iana","compressible":false,"extensions":["doc","dot"]},"application/mud+json":{"source":"iana","compressible":true},"application/multipart-core":{"source":"iana"},"application/mxf":{"source":"iana","extensions":["mxf"]},"application/n-quads":{"source":"iana","extensions":["nq"]},"application/n-triples":{"source":"iana","extensions":["nt"]},"application/nasdata":{"source":"iana"},"application/news-checkgroups":{"source":"iana","charset":"US-ASCII"},"application/news-groupinfo":{"source":"iana","charset":"US-ASCII"},"application/news-transmission":{"source":"iana"},"application/nlsml+xml":{"source":"iana","compressible":true},"application/node":{"source":"iana","extensions":["cjs"]},"application/nss":{"source":"iana"},"application/oauth-authz-req+jwt":{"source":"iana"},"application/oblivious-dns-message":{"source":"iana"},"application/ocsp-request":{"source":"iana"},"application/ocsp-response":{"source":"iana"},"application/octet-stream":{"source":"iana","compressible":false,"extensions":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"]},"application/oda":{"source":"iana","extensions":["oda"]},"application/odm+xml":{"source":"iana","compressible":true},"application/odx":{"source":"iana"},"application/oebps-package+xml":{"source":"iana","compressible":true,"extensions":["opf"]},"application/ogg":{"source":"iana","compressible":false,"extensions":["ogx"]},"application/omdoc+xml":{"source":"apache","compressible":true,"extensions":["omdoc"]},"application/onenote":{"source":"apache","extensions":["onetoc","onetoc2","onetmp","onepkg"]},"application/opc-nodeset+xml":{"source":"iana","compressible":true},"application/oscore":{"source":"iana"},"application/oxps":{"source":"iana","extensions":["oxps"]},"application/p21":{"source":"iana"},"application/p21+zip":{"source":"iana","compressible":false},"application/p2p-overlay+xml":{"source":"iana","compressible":true,"extensions":["relo"]},"application/parityfec":{"source":"iana"},"application/passport":{"source":"iana"},"application/patch-ops-error+xml":{"source":"iana","compressible":true,"extensions":["xer"]},"application/pdf":{"source":"iana","compressible":false,"extensions":["pdf"]},"application/pdx":{"source":"iana"},"application/pem-certificate-chain":{"source":"iana"},"application/pgp-encrypted":{"source":"iana","compressible":false,"extensions":["pgp"]},"application/pgp-keys":{"source":"iana","extensions":["asc"]},"application/pgp-signature":{"source":"iana","extensions":["asc","sig"]},"application/pics-rules":{"source":"apache","extensions":["prf"]},"application/pidf+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pidf-diff+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/pkcs10":{"source":"iana","extensions":["p10"]},"application/pkcs12":{"source":"iana"},"application/pkcs7-mime":{"source":"iana","extensions":["p7m","p7c"]},"application/pkcs7-signature":{"source":"iana","extensions":["p7s"]},"application/pkcs8":{"source":"iana","extensions":["p8"]},"application/pkcs8-encrypted":{"source":"iana"},"application/pkix-attr-cert":{"source":"iana","extensions":["ac"]},"application/pkix-cert":{"source":"iana","extensions":["cer"]},"application/pkix-crl":{"source":"iana","extensions":["crl"]},"application/pkix-pkipath":{"source":"iana","extensions":["pkipath"]},"application/pkixcmp":{"source":"iana","extensions":["pki"]},"application/pls+xml":{"source":"iana","compressible":true,"extensions":["pls"]},"application/poc-settings+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/postscript":{"source":"iana","compressible":true,"extensions":["ai","eps","ps"]},"application/ppsp-tracker+json":{"source":"iana","compressible":true},"application/problem+json":{"source":"iana","compressible":true},"application/problem+xml":{"source":"iana","compressible":true},"application/provenance+xml":{"source":"iana","compressible":true,"extensions":["provx"]},"application/prs.alvestrand.titrax-sheet":{"source":"iana"},"application/prs.cww":{"source":"iana","extensions":["cww"]},"application/prs.cyn":{"source":"iana","charset":"7-BIT"},"application/prs.hpub+zip":{"source":"iana","compressible":false},"application/prs.nprend":{"source":"iana"},"application/prs.plucker":{"source":"iana"},"application/prs.rdf-xml-crypt":{"source":"iana"},"application/prs.xsf+xml":{"source":"iana","compressible":true},"application/pskc+xml":{"source":"iana","compressible":true,"extensions":["pskcxml"]},"application/pvd+json":{"source":"iana","compressible":true},"application/qsig":{"source":"iana"},"application/raml+yaml":{"compressible":true,"extensions":["raml"]},"application/raptorfec":{"source":"iana"},"application/rdap+json":{"source":"iana","compressible":true},"application/rdf+xml":{"source":"iana","compressible":true,"extensions":["rdf","owl"]},"application/reginfo+xml":{"source":"iana","compressible":true,"extensions":["rif"]},"application/relax-ng-compact-syntax":{"source":"iana","extensions":["rnc"]},"application/remote-printing":{"source":"iana"},"application/reputon+json":{"source":"iana","compressible":true},"application/resource-lists+xml":{"source":"iana","compressible":true,"extensions":["rl"]},"application/resource-lists-diff+xml":{"source":"iana","compressible":true,"extensions":["rld"]},"application/rfc+xml":{"source":"iana","compressible":true},"application/riscos":{"source":"iana"},"application/rlmi+xml":{"source":"iana","compressible":true},"application/rls-services+xml":{"source":"iana","compressible":true,"extensions":["rs"]},"application/route-apd+xml":{"source":"iana","compressible":true,"extensions":["rapd"]},"application/route-s-tsid+xml":{"source":"iana","compressible":true,"extensions":["sls"]},"application/route-usd+xml":{"source":"iana","compressible":true,"extensions":["rusd"]},"application/rpki-ghostbusters":{"source":"iana","extensions":["gbr"]},"application/rpki-manifest":{"source":"iana","extensions":["mft"]},"application/rpki-publication":{"source":"iana"},"application/rpki-roa":{"source":"iana","extensions":["roa"]},"application/rpki-updown":{"source":"iana"},"application/rsd+xml":{"source":"apache","compressible":true,"extensions":["rsd"]},"application/rss+xml":{"source":"apache","compressible":true,"extensions":["rss"]},"application/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"application/rtploopback":{"source":"iana"},"application/rtx":{"source":"iana"},"application/samlassertion+xml":{"source":"iana","compressible":true},"application/samlmetadata+xml":{"source":"iana","compressible":true},"application/sarif+json":{"source":"iana","compressible":true},"application/sarif-external-properties+json":{"source":"iana","compressible":true},"application/sbe":{"source":"iana"},"application/sbml+xml":{"source":"iana","compressible":true,"extensions":["sbml"]},"application/scaip+xml":{"source":"iana","compressible":true},"application/scim+json":{"source":"iana","compressible":true},"application/scvp-cv-request":{"source":"iana","extensions":["scq"]},"application/scvp-cv-response":{"source":"iana","extensions":["scs"]},"application/scvp-vp-request":{"source":"iana","extensions":["spq"]},"application/scvp-vp-response":{"source":"iana","extensions":["spp"]},"application/sdp":{"source":"iana","extensions":["sdp"]},"application/secevent+jwt":{"source":"iana"},"application/senml+cbor":{"source":"iana"},"application/senml+json":{"source":"iana","compressible":true},"application/senml+xml":{"source":"iana","compressible":true,"extensions":["senmlx"]},"application/senml-etch+cbor":{"source":"iana"},"application/senml-etch+json":{"source":"iana","compressible":true},"application/senml-exi":{"source":"iana"},"application/sensml+cbor":{"source":"iana"},"application/sensml+json":{"source":"iana","compressible":true},"application/sensml+xml":{"source":"iana","compressible":true,"extensions":["sensmlx"]},"application/sensml-exi":{"source":"iana"},"application/sep+xml":{"source":"iana","compressible":true},"application/sep-exi":{"source":"iana"},"application/session-info":{"source":"iana"},"application/set-payment":{"source":"iana"},"application/set-payment-initiation":{"source":"iana","extensions":["setpay"]},"application/set-registration":{"source":"iana"},"application/set-registration-initiation":{"source":"iana","extensions":["setreg"]},"application/sgml":{"source":"iana"},"application/sgml-open-catalog":{"source":"iana"},"application/shf+xml":{"source":"iana","compressible":true,"extensions":["shf"]},"application/sieve":{"source":"iana","extensions":["siv","sieve"]},"application/simple-filter+xml":{"source":"iana","compressible":true},"application/simple-message-summary":{"source":"iana"},"application/simplesymbolcontainer":{"source":"iana"},"application/sipc":{"source":"iana"},"application/slate":{"source":"iana"},"application/smil":{"source":"iana"},"application/smil+xml":{"source":"iana","compressible":true,"extensions":["smi","smil"]},"application/smpte336m":{"source":"iana"},"application/soap+fastinfoset":{"source":"iana"},"application/soap+xml":{"source":"iana","compressible":true},"application/sparql-query":{"source":"iana","extensions":["rq"]},"application/sparql-results+xml":{"source":"iana","compressible":true,"extensions":["srx"]},"application/spdx+json":{"source":"iana","compressible":true},"application/spirits-event+xml":{"source":"iana","compressible":true},"application/sql":{"source":"iana"},"application/srgs":{"source":"iana","extensions":["gram"]},"application/srgs+xml":{"source":"iana","compressible":true,"extensions":["grxml"]},"application/sru+xml":{"source":"iana","compressible":true,"extensions":["sru"]},"application/ssdl+xml":{"source":"apache","compressible":true,"extensions":["ssdl"]},"application/ssml+xml":{"source":"iana","compressible":true,"extensions":["ssml"]},"application/stix+json":{"source":"iana","compressible":true},"application/swid+xml":{"source":"iana","compressible":true,"extensions":["swidtag"]},"application/tamp-apex-update":{"source":"iana"},"application/tamp-apex-update-confirm":{"source":"iana"},"application/tamp-community-update":{"source":"iana"},"application/tamp-community-update-confirm":{"source":"iana"},"application/tamp-error":{"source":"iana"},"application/tamp-sequence-adjust":{"source":"iana"},"application/tamp-sequence-adjust-confirm":{"source":"iana"},"application/tamp-status-query":{"source":"iana"},"application/tamp-status-response":{"source":"iana"},"application/tamp-update":{"source":"iana"},"application/tamp-update-confirm":{"source":"iana"},"application/tar":{"compressible":true},"application/taxii+json":{"source":"iana","compressible":true},"application/td+json":{"source":"iana","compressible":true},"application/tei+xml":{"source":"iana","compressible":true,"extensions":["tei","teicorpus"]},"application/tetra_isi":{"source":"iana"},"application/thraud+xml":{"source":"iana","compressible":true,"extensions":["tfi"]},"application/timestamp-query":{"source":"iana"},"application/timestamp-reply":{"source":"iana"},"application/timestamped-data":{"source":"iana","extensions":["tsd"]},"application/tlsrpt+gzip":{"source":"iana"},"application/tlsrpt+json":{"source":"iana","compressible":true},"application/tnauthlist":{"source":"iana"},"application/token-introspection+jwt":{"source":"iana"},"application/toml":{"compressible":true,"extensions":["toml"]},"application/trickle-ice-sdpfrag":{"source":"iana"},"application/trig":{"source":"iana","extensions":["trig"]},"application/ttml+xml":{"source":"iana","compressible":true,"extensions":["ttml"]},"application/tve-trigger":{"source":"iana"},"application/tzif":{"source":"iana"},"application/tzif-leap":{"source":"iana"},"application/ubjson":{"compressible":false,"extensions":["ubj"]},"application/ulpfec":{"source":"iana"},"application/urc-grpsheet+xml":{"source":"iana","compressible":true},"application/urc-ressheet+xml":{"source":"iana","compressible":true,"extensions":["rsheet"]},"application/urc-targetdesc+xml":{"source":"iana","compressible":true,"extensions":["td"]},"application/urc-uisocketdesc+xml":{"source":"iana","compressible":true},"application/vcard+json":{"source":"iana","compressible":true},"application/vcard+xml":{"source":"iana","compressible":true},"application/vemmi":{"source":"iana"},"application/vividence.scriptfile":{"source":"apache"},"application/vnd.1000minds.decision-model+xml":{"source":"iana","compressible":true,"extensions":["1km"]},"application/vnd.3gpp-prose+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-prose-pc3ch+xml":{"source":"iana","compressible":true},"application/vnd.3gpp-v2x-local-service-information":{"source":"iana"},"application/vnd.3gpp.5gnas":{"source":"iana"},"application/vnd.3gpp.access-transfer-events+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.bsf+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gmop+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.gtpc":{"source":"iana"},"application/vnd.3gpp.interworking-data":{"source":"iana"},"application/vnd.3gpp.lpp":{"source":"iana"},"application/vnd.3gpp.mc-signalling-ear":{"source":"iana"},"application/vnd.3gpp.mcdata-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-payload":{"source":"iana"},"application/vnd.3gpp.mcdata-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-signalling":{"source":"iana"},"application/vnd.3gpp.mcdata-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcdata-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-floor-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-signed+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-ue-init-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcptt-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-command+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-affiliation-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-location-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-mbms-usage-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-service-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-transmission-request+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-ue-config+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mcvideo-user-profile+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.mid-call+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ngap":{"source":"iana"},"application/vnd.3gpp.pfcp":{"source":"iana"},"application/vnd.3gpp.pic-bw-large":{"source":"iana","extensions":["plb"]},"application/vnd.3gpp.pic-bw-small":{"source":"iana","extensions":["psb"]},"application/vnd.3gpp.pic-bw-var":{"source":"iana","extensions":["pvb"]},"application/vnd.3gpp.s1ap":{"source":"iana"},"application/vnd.3gpp.sms":{"source":"iana"},"application/vnd.3gpp.sms+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-ext+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.srvcc-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.state-and-event-info+xml":{"source":"iana","compressible":true},"application/vnd.3gpp.ussd+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.bcmcsinfo+xml":{"source":"iana","compressible":true},"application/vnd.3gpp2.sms":{"source":"iana"},"application/vnd.3gpp2.tcap":{"source":"iana","extensions":["tcap"]},"application/vnd.3lightssoftware.imagescal":{"source":"iana"},"application/vnd.3m.post-it-notes":{"source":"iana","extensions":["pwn"]},"application/vnd.accpac.simply.aso":{"source":"iana","extensions":["aso"]},"application/vnd.accpac.simply.imp":{"source":"iana","extensions":["imp"]},"application/vnd.acucobol":{"source":"iana","extensions":["acu"]},"application/vnd.acucorp":{"source":"iana","extensions":["atc","acutc"]},"application/vnd.adobe.air-application-installer-package+zip":{"source":"apache","compressible":false,"extensions":["air"]},"application/vnd.adobe.flash.movie":{"source":"iana"},"application/vnd.adobe.formscentral.fcdt":{"source":"iana","extensions":["fcdt"]},"application/vnd.adobe.fxp":{"source":"iana","extensions":["fxp","fxpl"]},"application/vnd.adobe.partial-upload":{"source":"iana"},"application/vnd.adobe.xdp+xml":{"source":"iana","compressible":true,"extensions":["xdp"]},"application/vnd.adobe.xfdf":{"source":"iana","extensions":["xfdf"]},"application/vnd.aether.imp":{"source":"iana"},"application/vnd.afpc.afplinedata":{"source":"iana"},"application/vnd.afpc.afplinedata-pagedef":{"source":"iana"},"application/vnd.afpc.cmoca-cmresource":{"source":"iana"},"application/vnd.afpc.foca-charset":{"source":"iana"},"application/vnd.afpc.foca-codedfont":{"source":"iana"},"application/vnd.afpc.foca-codepage":{"source":"iana"},"application/vnd.afpc.modca":{"source":"iana"},"application/vnd.afpc.modca-cmtable":{"source":"iana"},"application/vnd.afpc.modca-formdef":{"source":"iana"},"application/vnd.afpc.modca-mediummap":{"source":"iana"},"application/vnd.afpc.modca-objectcontainer":{"source":"iana"},"application/vnd.afpc.modca-overlay":{"source":"iana"},"application/vnd.afpc.modca-pagesegment":{"source":"iana"},"application/vnd.age":{"source":"iana","extensions":["age"]},"application/vnd.ah-barcode":{"source":"iana"},"application/vnd.ahead.space":{"source":"iana","extensions":["ahead"]},"application/vnd.airzip.filesecure.azf":{"source":"iana","extensions":["azf"]},"application/vnd.airzip.filesecure.azs":{"source":"iana","extensions":["azs"]},"application/vnd.amadeus+json":{"source":"iana","compressible":true},"application/vnd.amazon.ebook":{"source":"apache","extensions":["azw"]},"application/vnd.amazon.mobi8-ebook":{"source":"iana"},"application/vnd.americandynamics.acc":{"source":"iana","extensions":["acc"]},"application/vnd.amiga.ami":{"source":"iana","extensions":["ami"]},"application/vnd.amundsen.maze+xml":{"source":"iana","compressible":true},"application/vnd.android.ota":{"source":"iana"},"application/vnd.android.package-archive":{"source":"apache","compressible":false,"extensions":["apk"]},"application/vnd.anki":{"source":"iana"},"application/vnd.anser-web-certificate-issue-initiation":{"source":"iana","extensions":["cii"]},"application/vnd.anser-web-funds-transfer-initiation":{"source":"apache","extensions":["fti"]},"application/vnd.antix.game-component":{"source":"iana","extensions":["atx"]},"application/vnd.apache.arrow.file":{"source":"iana"},"application/vnd.apache.arrow.stream":{"source":"iana"},"application/vnd.apache.thrift.binary":{"source":"iana"},"application/vnd.apache.thrift.compact":{"source":"iana"},"application/vnd.apache.thrift.json":{"source":"iana"},"application/vnd.api+json":{"source":"iana","compressible":true},"application/vnd.aplextor.warrp+json":{"source":"iana","compressible":true},"application/vnd.apothekende.reservation+json":{"source":"iana","compressible":true},"application/vnd.apple.installer+xml":{"source":"iana","compressible":true,"extensions":["mpkg"]},"application/vnd.apple.keynote":{"source":"iana","extensions":["key"]},"application/vnd.apple.mpegurl":{"source":"iana","extensions":["m3u8"]},"application/vnd.apple.numbers":{"source":"iana","extensions":["numbers"]},"application/vnd.apple.pages":{"source":"iana","extensions":["pages"]},"application/vnd.apple.pkpass":{"compressible":false,"extensions":["pkpass"]},"application/vnd.arastra.swi":{"source":"iana"},"application/vnd.aristanetworks.swi":{"source":"iana","extensions":["swi"]},"application/vnd.artisan+json":{"source":"iana","compressible":true},"application/vnd.artsquare":{"source":"iana"},"application/vnd.astraea-software.iota":{"source":"iana","extensions":["iota"]},"application/vnd.audiograph":{"source":"iana","extensions":["aep"]},"application/vnd.autopackage":{"source":"iana"},"application/vnd.avalon+json":{"source":"iana","compressible":true},"application/vnd.avistar+xml":{"source":"iana","compressible":true},"application/vnd.balsamiq.bmml+xml":{"source":"iana","compressible":true,"extensions":["bmml"]},"application/vnd.balsamiq.bmpr":{"source":"iana"},"application/vnd.banana-accounting":{"source":"iana"},"application/vnd.bbf.usp.error":{"source":"iana"},"application/vnd.bbf.usp.msg":{"source":"iana"},"application/vnd.bbf.usp.msg+json":{"source":"iana","compressible":true},"application/vnd.bekitzur-stech+json":{"source":"iana","compressible":true},"application/vnd.bint.med-content":{"source":"iana"},"application/vnd.biopax.rdf+xml":{"source":"iana","compressible":true},"application/vnd.blink-idb-value-wrapper":{"source":"iana"},"application/vnd.blueice.multipass":{"source":"iana","extensions":["mpm"]},"application/vnd.bluetooth.ep.oob":{"source":"iana"},"application/vnd.bluetooth.le.oob":{"source":"iana"},"application/vnd.bmi":{"source":"iana","extensions":["bmi"]},"application/vnd.bpf":{"source":"iana"},"application/vnd.bpf3":{"source":"iana"},"application/vnd.businessobjects":{"source":"iana","extensions":["rep"]},"application/vnd.byu.uapi+json":{"source":"iana","compressible":true},"application/vnd.cab-jscript":{"source":"iana"},"application/vnd.canon-cpdl":{"source":"iana"},"application/vnd.canon-lips":{"source":"iana"},"application/vnd.capasystems-pg+json":{"source":"iana","compressible":true},"application/vnd.cendio.thinlinc.clientconf":{"source":"iana"},"application/vnd.century-systems.tcp_stream":{"source":"iana"},"application/vnd.chemdraw+xml":{"source":"iana","compressible":true,"extensions":["cdxml"]},"application/vnd.chess-pgn":{"source":"iana"},"application/vnd.chipnuts.karaoke-mmd":{"source":"iana","extensions":["mmd"]},"application/vnd.ciedi":{"source":"iana"},"application/vnd.cinderella":{"source":"iana","extensions":["cdy"]},"application/vnd.cirpack.isdn-ext":{"source":"iana"},"application/vnd.citationstyles.style+xml":{"source":"iana","compressible":true,"extensions":["csl"]},"application/vnd.claymore":{"source":"iana","extensions":["cla"]},"application/vnd.cloanto.rp9":{"source":"iana","extensions":["rp9"]},"application/vnd.clonk.c4group":{"source":"iana","extensions":["c4g","c4d","c4f","c4p","c4u"]},"application/vnd.cluetrust.cartomobile-config":{"source":"iana","extensions":["c11amc"]},"application/vnd.cluetrust.cartomobile-config-pkg":{"source":"iana","extensions":["c11amz"]},"application/vnd.coffeescript":{"source":"iana"},"application/vnd.collabio.xodocuments.document":{"source":"iana"},"application/vnd.collabio.xodocuments.document-template":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation":{"source":"iana"},"application/vnd.collabio.xodocuments.presentation-template":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet":{"source":"iana"},"application/vnd.collabio.xodocuments.spreadsheet-template":{"source":"iana"},"application/vnd.collection+json":{"source":"iana","compressible":true},"application/vnd.collection.doc+json":{"source":"iana","compressible":true},"application/vnd.collection.next+json":{"source":"iana","compressible":true},"application/vnd.comicbook+zip":{"source":"iana","compressible":false},"application/vnd.comicbook-rar":{"source":"iana"},"application/vnd.commerce-battelle":{"source":"iana"},"application/vnd.commonspace":{"source":"iana","extensions":["csp"]},"application/vnd.contact.cmsg":{"source":"iana","extensions":["cdbcmsg"]},"application/vnd.coreos.ignition+json":{"source":"iana","compressible":true},"application/vnd.cosmocaller":{"source":"iana","extensions":["cmc"]},"application/vnd.crick.clicker":{"source":"iana","extensions":["clkx"]},"application/vnd.crick.clicker.keyboard":{"source":"iana","extensions":["clkk"]},"application/vnd.crick.clicker.palette":{"source":"iana","extensions":["clkp"]},"application/vnd.crick.clicker.template":{"source":"iana","extensions":["clkt"]},"application/vnd.crick.clicker.wordbank":{"source":"iana","extensions":["clkw"]},"application/vnd.criticaltools.wbs+xml":{"source":"iana","compressible":true,"extensions":["wbs"]},"application/vnd.cryptii.pipe+json":{"source":"iana","compressible":true},"application/vnd.crypto-shade-file":{"source":"iana"},"application/vnd.cryptomator.encrypted":{"source":"iana"},"application/vnd.cryptomator.vault":{"source":"iana"},"application/vnd.ctc-posml":{"source":"iana","extensions":["pml"]},"application/vnd.ctct.ws+xml":{"source":"iana","compressible":true},"application/vnd.cups-pdf":{"source":"iana"},"application/vnd.cups-postscript":{"source":"iana"},"application/vnd.cups-ppd":{"source":"iana","extensions":["ppd"]},"application/vnd.cups-raster":{"source":"iana"},"application/vnd.cups-raw":{"source":"iana"},"application/vnd.curl":{"source":"iana"},"application/vnd.curl.car":{"source":"apache","extensions":["car"]},"application/vnd.curl.pcurl":{"source":"apache","extensions":["pcurl"]},"application/vnd.cyan.dean.root+xml":{"source":"iana","compressible":true},"application/vnd.cybank":{"source":"iana"},"application/vnd.cyclonedx+json":{"source":"iana","compressible":true},"application/vnd.cyclonedx+xml":{"source":"iana","compressible":true},"application/vnd.d2l.coursepackage1p0+zip":{"source":"iana","compressible":false},"application/vnd.d3m-dataset":{"source":"iana"},"application/vnd.d3m-problem":{"source":"iana"},"application/vnd.dart":{"source":"iana","compressible":true,"extensions":["dart"]},"application/vnd.data-vision.rdz":{"source":"iana","extensions":["rdz"]},"application/vnd.datapackage+json":{"source":"iana","compressible":true},"application/vnd.dataresource+json":{"source":"iana","compressible":true},"application/vnd.dbf":{"source":"iana","extensions":["dbf"]},"application/vnd.debian.binary-package":{"source":"iana"},"application/vnd.dece.data":{"source":"iana","extensions":["uvf","uvvf","uvd","uvvd"]},"application/vnd.dece.ttml+xml":{"source":"iana","compressible":true,"extensions":["uvt","uvvt"]},"application/vnd.dece.unspecified":{"source":"iana","extensions":["uvx","uvvx"]},"application/vnd.dece.zip":{"source":"iana","extensions":["uvz","uvvz"]},"application/vnd.denovo.fcselayout-link":{"source":"iana","extensions":["fe_launch"]},"application/vnd.desmume.movie":{"source":"iana"},"application/vnd.dir-bi.plate-dl-nosuffix":{"source":"iana"},"application/vnd.dm.delegation+xml":{"source":"iana","compressible":true},"application/vnd.dna":{"source":"iana","extensions":["dna"]},"application/vnd.document+json":{"source":"iana","compressible":true},"application/vnd.dolby.mlp":{"source":"apache","extensions":["mlp"]},"application/vnd.dolby.mobile.1":{"source":"iana"},"application/vnd.dolby.mobile.2":{"source":"iana"},"application/vnd.doremir.scorecloud-binary-document":{"source":"iana"},"application/vnd.dpgraph":{"source":"iana","extensions":["dpg"]},"application/vnd.dreamfactory":{"source":"iana","extensions":["dfac"]},"application/vnd.drive+json":{"source":"iana","compressible":true},"application/vnd.ds-keypoint":{"source":"apache","extensions":["kpxx"]},"application/vnd.dtg.local":{"source":"iana"},"application/vnd.dtg.local.flash":{"source":"iana"},"application/vnd.dtg.local.html":{"source":"iana"},"application/vnd.dvb.ait":{"source":"iana","extensions":["ait"]},"application/vnd.dvb.dvbisl+xml":{"source":"iana","compressible":true},"application/vnd.dvb.dvbj":{"source":"iana"},"application/vnd.dvb.esgcontainer":{"source":"iana"},"application/vnd.dvb.ipdcdftnotifaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess":{"source":"iana"},"application/vnd.dvb.ipdcesgaccess2":{"source":"iana"},"application/vnd.dvb.ipdcesgpdd":{"source":"iana"},"application/vnd.dvb.ipdcroaming":{"source":"iana"},"application/vnd.dvb.iptv.alfec-base":{"source":"iana"},"application/vnd.dvb.iptv.alfec-enhancement":{"source":"iana"},"application/vnd.dvb.notif-aggregate-root+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-container+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-generic+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-msglist+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-request+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-ia-registration-response+xml":{"source":"iana","compressible":true},"application/vnd.dvb.notif-init+xml":{"source":"iana","compressible":true},"application/vnd.dvb.pfr":{"source":"iana"},"application/vnd.dvb.service":{"source":"iana","extensions":["svc"]},"application/vnd.dxr":{"source":"iana"},"application/vnd.dynageo":{"source":"iana","extensions":["geo"]},"application/vnd.dzr":{"source":"iana"},"application/vnd.easykaraoke.cdgdownload":{"source":"iana"},"application/vnd.ecdis-update":{"source":"iana"},"application/vnd.ecip.rlp":{"source":"iana"},"application/vnd.eclipse.ditto+json":{"source":"iana","compressible":true},"application/vnd.ecowin.chart":{"source":"iana","extensions":["mag"]},"application/vnd.ecowin.filerequest":{"source":"iana"},"application/vnd.ecowin.fileupdate":{"source":"iana"},"application/vnd.ecowin.series":{"source":"iana"},"application/vnd.ecowin.seriesrequest":{"source":"iana"},"application/vnd.ecowin.seriesupdate":{"source":"iana"},"application/vnd.efi.img":{"source":"iana"},"application/vnd.efi.iso":{"source":"iana"},"application/vnd.emclient.accessrequest+xml":{"source":"iana","compressible":true},"application/vnd.enliven":{"source":"iana","extensions":["nml"]},"application/vnd.enphase.envoy":{"source":"iana"},"application/vnd.eprints.data+xml":{"source":"iana","compressible":true},"application/vnd.epson.esf":{"source":"iana","extensions":["esf"]},"application/vnd.epson.msf":{"source":"iana","extensions":["msf"]},"application/vnd.epson.quickanime":{"source":"iana","extensions":["qam"]},"application/vnd.epson.salt":{"source":"iana","extensions":["slt"]},"application/vnd.epson.ssf":{"source":"iana","extensions":["ssf"]},"application/vnd.ericsson.quickcall":{"source":"iana"},"application/vnd.espass-espass+zip":{"source":"iana","compressible":false},"application/vnd.eszigno3+xml":{"source":"iana","compressible":true,"extensions":["es3","et3"]},"application/vnd.etsi.aoc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.asic-e+zip":{"source":"iana","compressible":false},"application/vnd.etsi.asic-s+zip":{"source":"iana","compressible":false},"application/vnd.etsi.cug+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvcommand+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-bc+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-cod+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsad-npvr+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvservice+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvsync+xml":{"source":"iana","compressible":true},"application/vnd.etsi.iptvueprofile+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mcid+xml":{"source":"iana","compressible":true},"application/vnd.etsi.mheg5":{"source":"iana"},"application/vnd.etsi.overload-control-policy-dataset+xml":{"source":"iana","compressible":true},"application/vnd.etsi.pstn+xml":{"source":"iana","compressible":true},"application/vnd.etsi.sci+xml":{"source":"iana","compressible":true},"application/vnd.etsi.simservs+xml":{"source":"iana","compressible":true},"application/vnd.etsi.timestamp-token":{"source":"iana"},"application/vnd.etsi.tsl+xml":{"source":"iana","compressible":true},"application/vnd.etsi.tsl.der":{"source":"iana"},"application/vnd.eu.kasparian.car+json":{"source":"iana","compressible":true},"application/vnd.eudora.data":{"source":"iana"},"application/vnd.evolv.ecig.profile":{"source":"iana"},"application/vnd.evolv.ecig.settings":{"source":"iana"},"application/vnd.evolv.ecig.theme":{"source":"iana"},"application/vnd.exstream-empower+zip":{"source":"iana","compressible":false},"application/vnd.exstream-package":{"source":"iana"},"application/vnd.ezpix-album":{"source":"iana","extensions":["ez2"]},"application/vnd.ezpix-package":{"source":"iana","extensions":["ez3"]},"application/vnd.f-secure.mobile":{"source":"iana"},"application/vnd.familysearch.gedcom+zip":{"source":"iana","compressible":false},"application/vnd.fastcopy-disk-image":{"source":"iana"},"application/vnd.fdf":{"source":"iana","extensions":["fdf"]},"application/vnd.fdsn.mseed":{"source":"iana","extensions":["mseed"]},"application/vnd.fdsn.seed":{"source":"iana","extensions":["seed","dataless"]},"application/vnd.ffsns":{"source":"iana"},"application/vnd.ficlab.flb+zip":{"source":"iana","compressible":false},"application/vnd.filmit.zfc":{"source":"iana"},"application/vnd.fints":{"source":"iana"},"application/vnd.firemonkeys.cloudcell":{"source":"iana"},"application/vnd.flographit":{"source":"iana","extensions":["gph"]},"application/vnd.fluxtime.clip":{"source":"iana","extensions":["ftc"]},"application/vnd.font-fontforge-sfd":{"source":"iana"},"application/vnd.framemaker":{"source":"iana","extensions":["fm","frame","maker","book"]},"application/vnd.frogans.fnc":{"source":"iana","extensions":["fnc"]},"application/vnd.frogans.ltf":{"source":"iana","extensions":["ltf"]},"application/vnd.fsc.weblaunch":{"source":"iana","extensions":["fsc"]},"application/vnd.fujifilm.fb.docuworks":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.binder":{"source":"iana"},"application/vnd.fujifilm.fb.docuworks.container":{"source":"iana"},"application/vnd.fujifilm.fb.jfi+xml":{"source":"iana","compressible":true},"application/vnd.fujitsu.oasys":{"source":"iana","extensions":["oas"]},"application/vnd.fujitsu.oasys2":{"source":"iana","extensions":["oa2"]},"application/vnd.fujitsu.oasys3":{"source":"iana","extensions":["oa3"]},"application/vnd.fujitsu.oasysgp":{"source":"iana","extensions":["fg5"]},"application/vnd.fujitsu.oasysprs":{"source":"iana","extensions":["bh2"]},"application/vnd.fujixerox.art-ex":{"source":"iana"},"application/vnd.fujixerox.art4":{"source":"iana"},"application/vnd.fujixerox.ddd":{"source":"iana","extensions":["ddd"]},"application/vnd.fujixerox.docuworks":{"source":"iana","extensions":["xdw"]},"application/vnd.fujixerox.docuworks.binder":{"source":"iana","extensions":["xbd"]},"application/vnd.fujixerox.docuworks.container":{"source":"iana"},"application/vnd.fujixerox.hbpl":{"source":"iana"},"application/vnd.fut-misnet":{"source":"iana"},"application/vnd.futoin+cbor":{"source":"iana"},"application/vnd.futoin+json":{"source":"iana","compressible":true},"application/vnd.fuzzysheet":{"source":"iana","extensions":["fzs"]},"application/vnd.genomatix.tuxedo":{"source":"iana","extensions":["txd"]},"application/vnd.gentics.grd+json":{"source":"iana","compressible":true},"application/vnd.geo+json":{"source":"iana","compressible":true},"application/vnd.geocube+xml":{"source":"iana","compressible":true},"application/vnd.geogebra.file":{"source":"iana","extensions":["ggb"]},"application/vnd.geogebra.slides":{"source":"iana"},"application/vnd.geogebra.tool":{"source":"iana","extensions":["ggt"]},"application/vnd.geometry-explorer":{"source":"iana","extensions":["gex","gre"]},"application/vnd.geonext":{"source":"iana","extensions":["gxt"]},"application/vnd.geoplan":{"source":"iana","extensions":["g2w"]},"application/vnd.geospace":{"source":"iana","extensions":["g3w"]},"application/vnd.gerber":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt":{"source":"iana"},"application/vnd.globalplatform.card-content-mgt-response":{"source":"iana"},"application/vnd.gmx":{"source":"iana","extensions":["gmx"]},"application/vnd.google-apps.document":{"compressible":false,"extensions":["gdoc"]},"application/vnd.google-apps.presentation":{"compressible":false,"extensions":["gslides"]},"application/vnd.google-apps.spreadsheet":{"compressible":false,"extensions":["gsheet"]},"application/vnd.google-earth.kml+xml":{"source":"iana","compressible":true,"extensions":["kml"]},"application/vnd.google-earth.kmz":{"source":"iana","compressible":false,"extensions":["kmz"]},"application/vnd.gov.sk.e-form+xml":{"source":"iana","compressible":true},"application/vnd.gov.sk.e-form+zip":{"source":"iana","compressible":false},"application/vnd.gov.sk.xmldatacontainer+xml":{"source":"iana","compressible":true},"application/vnd.grafeq":{"source":"iana","extensions":["gqf","gqs"]},"application/vnd.gridmp":{"source":"iana"},"application/vnd.groove-account":{"source":"iana","extensions":["gac"]},"application/vnd.groove-help":{"source":"iana","extensions":["ghf"]},"application/vnd.groove-identity-message":{"source":"iana","extensions":["gim"]},"application/vnd.groove-injector":{"source":"iana","extensions":["grv"]},"application/vnd.groove-tool-message":{"source":"iana","extensions":["gtm"]},"application/vnd.groove-tool-template":{"source":"iana","extensions":["tpl"]},"application/vnd.groove-vcard":{"source":"iana","extensions":["vcg"]},"application/vnd.hal+json":{"source":"iana","compressible":true},"application/vnd.hal+xml":{"source":"iana","compressible":true,"extensions":["hal"]},"application/vnd.handheld-entertainment+xml":{"source":"iana","compressible":true,"extensions":["zmm"]},"application/vnd.hbci":{"source":"iana","extensions":["hbci"]},"application/vnd.hc+json":{"source":"iana","compressible":true},"application/vnd.hcl-bireports":{"source":"iana"},"application/vnd.hdt":{"source":"iana"},"application/vnd.heroku+json":{"source":"iana","compressible":true},"application/vnd.hhe.lesson-player":{"source":"iana","extensions":["les"]},"application/vnd.hl7cda+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hl7v2+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.hp-hpgl":{"source":"iana","extensions":["hpgl"]},"application/vnd.hp-hpid":{"source":"iana","extensions":["hpid"]},"application/vnd.hp-hps":{"source":"iana","extensions":["hps"]},"application/vnd.hp-jlyt":{"source":"iana","extensions":["jlt"]},"application/vnd.hp-pcl":{"source":"iana","extensions":["pcl"]},"application/vnd.hp-pclxl":{"source":"iana","extensions":["pclxl"]},"application/vnd.httphone":{"source":"iana"},"application/vnd.hydrostatix.sof-data":{"source":"iana","extensions":["sfd-hdstx"]},"application/vnd.hyper+json":{"source":"iana","compressible":true},"application/vnd.hyper-item+json":{"source":"iana","compressible":true},"application/vnd.hyperdrive+json":{"source":"iana","compressible":true},"application/vnd.hzn-3d-crossword":{"source":"iana"},"application/vnd.ibm.afplinedata":{"source":"iana"},"application/vnd.ibm.electronic-media":{"source":"iana"},"application/vnd.ibm.minipay":{"source":"iana","extensions":["mpy"]},"application/vnd.ibm.modcap":{"source":"iana","extensions":["afp","listafp","list3820"]},"application/vnd.ibm.rights-management":{"source":"iana","extensions":["irm"]},"application/vnd.ibm.secure-container":{"source":"iana","extensions":["sc"]},"application/vnd.iccprofile":{"source":"iana","extensions":["icc","icm"]},"application/vnd.ieee.1905":{"source":"iana"},"application/vnd.igloader":{"source":"iana","extensions":["igl"]},"application/vnd.imagemeter.folder+zip":{"source":"iana","compressible":false},"application/vnd.imagemeter.image+zip":{"source":"iana","compressible":false},"application/vnd.immervision-ivp":{"source":"iana","extensions":["ivp"]},"application/vnd.immervision-ivu":{"source":"iana","extensions":["ivu"]},"application/vnd.ims.imsccv1p1":{"source":"iana"},"application/vnd.ims.imsccv1p2":{"source":"iana"},"application/vnd.ims.imsccv1p3":{"source":"iana"},"application/vnd.ims.lis.v2.result+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolconsumerprofile+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolproxy.id+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings+json":{"source":"iana","compressible":true},"application/vnd.ims.lti.v2.toolsettings.simple+json":{"source":"iana","compressible":true},"application/vnd.informedcontrol.rms+xml":{"source":"iana","compressible":true},"application/vnd.informix-visionary":{"source":"iana"},"application/vnd.infotech.project":{"source":"iana"},"application/vnd.infotech.project+xml":{"source":"iana","compressible":true},"application/vnd.innopath.wamp.notification":{"source":"iana"},"application/vnd.insors.igm":{"source":"iana","extensions":["igm"]},"application/vnd.intercon.formnet":{"source":"iana","extensions":["xpw","xpx"]},"application/vnd.intergeo":{"source":"iana","extensions":["i2g"]},"application/vnd.intertrust.digibox":{"source":"iana"},"application/vnd.intertrust.nncp":{"source":"iana"},"application/vnd.intu.qbo":{"source":"iana","extensions":["qbo"]},"application/vnd.intu.qfx":{"source":"iana","extensions":["qfx"]},"application/vnd.iptc.g2.catalogitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.conceptitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.knowledgeitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.newsmessage+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.packageitem+xml":{"source":"iana","compressible":true},"application/vnd.iptc.g2.planningitem+xml":{"source":"iana","compressible":true},"application/vnd.ipunplugged.rcprofile":{"source":"iana","extensions":["rcprofile"]},"application/vnd.irepository.package+xml":{"source":"iana","compressible":true,"extensions":["irp"]},"application/vnd.is-xpr":{"source":"iana","extensions":["xpr"]},"application/vnd.isac.fcs":{"source":"iana","extensions":["fcs"]},"application/vnd.iso11783-10+zip":{"source":"iana","compressible":false},"application/vnd.jam":{"source":"iana","extensions":["jam"]},"application/vnd.japannet-directory-service":{"source":"iana"},"application/vnd.japannet-jpnstore-wakeup":{"source":"iana"},"application/vnd.japannet-payment-wakeup":{"source":"iana"},"application/vnd.japannet-registration":{"source":"iana"},"application/vnd.japannet-registration-wakeup":{"source":"iana"},"application/vnd.japannet-setstore-wakeup":{"source":"iana"},"application/vnd.japannet-verification":{"source":"iana"},"application/vnd.japannet-verification-wakeup":{"source":"iana"},"application/vnd.jcp.javame.midlet-rms":{"source":"iana","extensions":["rms"]},"application/vnd.jisp":{"source":"iana","extensions":["jisp"]},"application/vnd.joost.joda-archive":{"source":"iana","extensions":["joda"]},"application/vnd.jsk.isdn-ngn":{"source":"iana"},"application/vnd.kahootz":{"source":"iana","extensions":["ktz","ktr"]},"application/vnd.kde.karbon":{"source":"iana","extensions":["karbon"]},"application/vnd.kde.kchart":{"source":"iana","extensions":["chrt"]},"application/vnd.kde.kformula":{"source":"iana","extensions":["kfo"]},"application/vnd.kde.kivio":{"source":"iana","extensions":["flw"]},"application/vnd.kde.kontour":{"source":"iana","extensions":["kon"]},"application/vnd.kde.kpresenter":{"source":"iana","extensions":["kpr","kpt"]},"application/vnd.kde.kspread":{"source":"iana","extensions":["ksp"]},"application/vnd.kde.kword":{"source":"iana","extensions":["kwd","kwt"]},"application/vnd.kenameaapp":{"source":"iana","extensions":["htke"]},"application/vnd.kidspiration":{"source":"iana","extensions":["kia"]},"application/vnd.kinar":{"source":"iana","extensions":["kne","knp"]},"application/vnd.koan":{"source":"iana","extensions":["skp","skd","skt","skm"]},"application/vnd.kodak-descriptor":{"source":"iana","extensions":["sse"]},"application/vnd.las":{"source":"iana"},"application/vnd.las.las+json":{"source":"iana","compressible":true},"application/vnd.las.las+xml":{"source":"iana","compressible":true,"extensions":["lasxml"]},"application/vnd.laszip":{"source":"iana"},"application/vnd.leap+json":{"source":"iana","compressible":true},"application/vnd.liberty-request+xml":{"source":"iana","compressible":true},"application/vnd.llamagraphics.life-balance.desktop":{"source":"iana","extensions":["lbd"]},"application/vnd.llamagraphics.life-balance.exchange+xml":{"source":"iana","compressible":true,"extensions":["lbe"]},"application/vnd.logipipe.circuit+zip":{"source":"iana","compressible":false},"application/vnd.loom":{"source":"iana"},"application/vnd.lotus-1-2-3":{"source":"iana","extensions":["123"]},"application/vnd.lotus-approach":{"source":"iana","extensions":["apr"]},"application/vnd.lotus-freelance":{"source":"iana","extensions":["pre"]},"application/vnd.lotus-notes":{"source":"iana","extensions":["nsf"]},"application/vnd.lotus-organizer":{"source":"iana","extensions":["org"]},"application/vnd.lotus-screencam":{"source":"iana","extensions":["scm"]},"application/vnd.lotus-wordpro":{"source":"iana","extensions":["lwp"]},"application/vnd.macports.portpkg":{"source":"iana","extensions":["portpkg"]},"application/vnd.mapbox-vector-tile":{"source":"iana","extensions":["mvt"]},"application/vnd.marlin.drm.actiontoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.conftoken+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.license+xml":{"source":"iana","compressible":true},"application/vnd.marlin.drm.mdcf":{"source":"iana"},"application/vnd.mason+json":{"source":"iana","compressible":true},"application/vnd.maxar.archive.3tz+zip":{"source":"iana","compressible":false},"application/vnd.maxmind.maxmind-db":{"source":"iana"},"application/vnd.mcd":{"source":"iana","extensions":["mcd"]},"application/vnd.medcalcdata":{"source":"iana","extensions":["mc1"]},"application/vnd.mediastation.cdkey":{"source":"iana","extensions":["cdkey"]},"application/vnd.meridian-slingshot":{"source":"iana"},"application/vnd.mfer":{"source":"iana","extensions":["mwf"]},"application/vnd.mfmp":{"source":"iana","extensions":["mfm"]},"application/vnd.micro+json":{"source":"iana","compressible":true},"application/vnd.micrografx.flo":{"source":"iana","extensions":["flo"]},"application/vnd.micrografx.igx":{"source":"iana","extensions":["igx"]},"application/vnd.microsoft.portable-executable":{"source":"iana"},"application/vnd.microsoft.windows.thumbnail-cache":{"source":"iana"},"application/vnd.miele+json":{"source":"iana","compressible":true},"application/vnd.mif":{"source":"iana","extensions":["mif"]},"application/vnd.minisoft-hp3000-save":{"source":"iana"},"application/vnd.mitsubishi.misty-guard.trustweb":{"source":"iana"},"application/vnd.mobius.daf":{"source":"iana","extensions":["daf"]},"application/vnd.mobius.dis":{"source":"iana","extensions":["dis"]},"application/vnd.mobius.mbk":{"source":"iana","extensions":["mbk"]},"application/vnd.mobius.mqy":{"source":"iana","extensions":["mqy"]},"application/vnd.mobius.msl":{"source":"iana","extensions":["msl"]},"application/vnd.mobius.plc":{"source":"iana","extensions":["plc"]},"application/vnd.mobius.txf":{"source":"iana","extensions":["txf"]},"application/vnd.mophun.application":{"source":"iana","extensions":["mpn"]},"application/vnd.mophun.certificate":{"source":"iana","extensions":["mpc"]},"application/vnd.motorola.flexsuite":{"source":"iana"},"application/vnd.motorola.flexsuite.adsi":{"source":"iana"},"application/vnd.motorola.flexsuite.fis":{"source":"iana"},"application/vnd.motorola.flexsuite.gotap":{"source":"iana"},"application/vnd.motorola.flexsuite.kmr":{"source":"iana"},"application/vnd.motorola.flexsuite.ttc":{"source":"iana"},"application/vnd.motorola.flexsuite.wem":{"source":"iana"},"application/vnd.motorola.iprm":{"source":"iana"},"application/vnd.mozilla.xul+xml":{"source":"iana","compressible":true,"extensions":["xul"]},"application/vnd.ms-3mfdocument":{"source":"iana"},"application/vnd.ms-artgalry":{"source":"iana","extensions":["cil"]},"application/vnd.ms-asf":{"source":"iana"},"application/vnd.ms-cab-compressed":{"source":"iana","extensions":["cab"]},"application/vnd.ms-color.iccprofile":{"source":"apache"},"application/vnd.ms-excel":{"source":"iana","compressible":false,"extensions":["xls","xlm","xla","xlc","xlt","xlw"]},"application/vnd.ms-excel.addin.macroenabled.12":{"source":"iana","extensions":["xlam"]},"application/vnd.ms-excel.sheet.binary.macroenabled.12":{"source":"iana","extensions":["xlsb"]},"application/vnd.ms-excel.sheet.macroenabled.12":{"source":"iana","extensions":["xlsm"]},"application/vnd.ms-excel.template.macroenabled.12":{"source":"iana","extensions":["xltm"]},"application/vnd.ms-fontobject":{"source":"iana","compressible":true,"extensions":["eot"]},"application/vnd.ms-htmlhelp":{"source":"iana","extensions":["chm"]},"application/vnd.ms-ims":{"source":"iana","extensions":["ims"]},"application/vnd.ms-lrm":{"source":"iana","extensions":["lrm"]},"application/vnd.ms-office.activex+xml":{"source":"iana","compressible":true},"application/vnd.ms-officetheme":{"source":"iana","extensions":["thmx"]},"application/vnd.ms-opentype":{"source":"apache","compressible":true},"application/vnd.ms-outlook":{"compressible":false,"extensions":["msg"]},"application/vnd.ms-package.obfuscated-opentype":{"source":"apache"},"application/vnd.ms-pki.seccat":{"source":"apache","extensions":["cat"]},"application/vnd.ms-pki.stl":{"source":"apache","extensions":["stl"]},"application/vnd.ms-playready.initiator+xml":{"source":"iana","compressible":true},"application/vnd.ms-powerpoint":{"source":"iana","compressible":false,"extensions":["ppt","pps","pot"]},"application/vnd.ms-powerpoint.addin.macroenabled.12":{"source":"iana","extensions":["ppam"]},"application/vnd.ms-powerpoint.presentation.macroenabled.12":{"source":"iana","extensions":["pptm"]},"application/vnd.ms-powerpoint.slide.macroenabled.12":{"source":"iana","extensions":["sldm"]},"application/vnd.ms-powerpoint.slideshow.macroenabled.12":{"source":"iana","extensions":["ppsm"]},"application/vnd.ms-powerpoint.template.macroenabled.12":{"source":"iana","extensions":["potm"]},"application/vnd.ms-printdevicecapabilities+xml":{"source":"iana","compressible":true},"application/vnd.ms-printing.printticket+xml":{"source":"apache","compressible":true},"application/vnd.ms-printschematicket+xml":{"source":"iana","compressible":true},"application/vnd.ms-project":{"source":"iana","extensions":["mpp","mpt"]},"application/vnd.ms-tnef":{"source":"iana"},"application/vnd.ms-windows.devicepairing":{"source":"iana"},"application/vnd.ms-windows.nwprinting.oob":{"source":"iana"},"application/vnd.ms-windows.printerpairing":{"source":"iana"},"application/vnd.ms-windows.wsd.oob":{"source":"iana"},"application/vnd.ms-wmdrm.lic-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.lic-resp":{"source":"iana"},"application/vnd.ms-wmdrm.meter-chlg-req":{"source":"iana"},"application/vnd.ms-wmdrm.meter-resp":{"source":"iana"},"application/vnd.ms-word.document.macroenabled.12":{"source":"iana","extensions":["docm"]},"application/vnd.ms-word.template.macroenabled.12":{"source":"iana","extensions":["dotm"]},"application/vnd.ms-works":{"source":"iana","extensions":["wps","wks","wcm","wdb"]},"application/vnd.ms-wpl":{"source":"iana","extensions":["wpl"]},"application/vnd.ms-xpsdocument":{"source":"iana","compressible":false,"extensions":["xps"]},"application/vnd.msa-disk-image":{"source":"iana"},"application/vnd.mseq":{"source":"iana","extensions":["mseq"]},"application/vnd.msign":{"source":"iana"},"application/vnd.multiad.creator":{"source":"iana"},"application/vnd.multiad.creator.cif":{"source":"iana"},"application/vnd.music-niff":{"source":"iana"},"application/vnd.musician":{"source":"iana","extensions":["mus"]},"application/vnd.muvee.style":{"source":"iana","extensions":["msty"]},"application/vnd.mynfc":{"source":"iana","extensions":["taglet"]},"application/vnd.nacamar.ybrid+json":{"source":"iana","compressible":true},"application/vnd.ncd.control":{"source":"iana"},"application/vnd.ncd.reference":{"source":"iana"},"application/vnd.nearst.inv+json":{"source":"iana","compressible":true},"application/vnd.nebumind.line":{"source":"iana"},"application/vnd.nervana":{"source":"iana"},"application/vnd.netfpx":{"source":"iana"},"application/vnd.neurolanguage.nlu":{"source":"iana","extensions":["nlu"]},"application/vnd.nimn":{"source":"iana"},"application/vnd.nintendo.nitro.rom":{"source":"iana"},"application/vnd.nintendo.snes.rom":{"source":"iana"},"application/vnd.nitf":{"source":"iana","extensions":["ntf","nitf"]},"application/vnd.noblenet-directory":{"source":"iana","extensions":["nnd"]},"application/vnd.noblenet-sealer":{"source":"iana","extensions":["nns"]},"application/vnd.noblenet-web":{"source":"iana","extensions":["nnw"]},"application/vnd.nokia.catalogs":{"source":"iana"},"application/vnd.nokia.conml+wbxml":{"source":"iana"},"application/vnd.nokia.conml+xml":{"source":"iana","compressible":true},"application/vnd.nokia.iptv.config+xml":{"source":"iana","compressible":true},"application/vnd.nokia.isds-radio-presets":{"source":"iana"},"application/vnd.nokia.landmark+wbxml":{"source":"iana"},"application/vnd.nokia.landmark+xml":{"source":"iana","compressible":true},"application/vnd.nokia.landmarkcollection+xml":{"source":"iana","compressible":true},"application/vnd.nokia.n-gage.ac+xml":{"source":"iana","compressible":true,"extensions":["ac"]},"application/vnd.nokia.n-gage.data":{"source":"iana","extensions":["ngdat"]},"application/vnd.nokia.n-gage.symbian.install":{"source":"iana","extensions":["n-gage"]},"application/vnd.nokia.ncd":{"source":"iana"},"application/vnd.nokia.pcd+wbxml":{"source":"iana"},"application/vnd.nokia.pcd+xml":{"source":"iana","compressible":true},"application/vnd.nokia.radio-preset":{"source":"iana","extensions":["rpst"]},"application/vnd.nokia.radio-presets":{"source":"iana","extensions":["rpss"]},"application/vnd.novadigm.edm":{"source":"iana","extensions":["edm"]},"application/vnd.novadigm.edx":{"source":"iana","extensions":["edx"]},"application/vnd.novadigm.ext":{"source":"iana","extensions":["ext"]},"application/vnd.ntt-local.content-share":{"source":"iana"},"application/vnd.ntt-local.file-transfer":{"source":"iana"},"application/vnd.ntt-local.ogw_remote-access":{"source":"iana"},"application/vnd.ntt-local.sip-ta_remote":{"source":"iana"},"application/vnd.ntt-local.sip-ta_tcp_stream":{"source":"iana"},"application/vnd.oasis.opendocument.chart":{"source":"iana","extensions":["odc"]},"application/vnd.oasis.opendocument.chart-template":{"source":"iana","extensions":["otc"]},"application/vnd.oasis.opendocument.database":{"source":"iana","extensions":["odb"]},"application/vnd.oasis.opendocument.formula":{"source":"iana","extensions":["odf"]},"application/vnd.oasis.opendocument.formula-template":{"source":"iana","extensions":["odft"]},"application/vnd.oasis.opendocument.graphics":{"source":"iana","compressible":false,"extensions":["odg"]},"application/vnd.oasis.opendocument.graphics-template":{"source":"iana","extensions":["otg"]},"application/vnd.oasis.opendocument.image":{"source":"iana","extensions":["odi"]},"application/vnd.oasis.opendocument.image-template":{"source":"iana","extensions":["oti"]},"application/vnd.oasis.opendocument.presentation":{"source":"iana","compressible":false,"extensions":["odp"]},"application/vnd.oasis.opendocument.presentation-template":{"source":"iana","extensions":["otp"]},"application/vnd.oasis.opendocument.spreadsheet":{"source":"iana","compressible":false,"extensions":["ods"]},"application/vnd.oasis.opendocument.spreadsheet-template":{"source":"iana","extensions":["ots"]},"application/vnd.oasis.opendocument.text":{"source":"iana","compressible":false,"extensions":["odt"]},"application/vnd.oasis.opendocument.text-master":{"source":"iana","extensions":["odm"]},"application/vnd.oasis.opendocument.text-template":{"source":"iana","extensions":["ott"]},"application/vnd.oasis.opendocument.text-web":{"source":"iana","extensions":["oth"]},"application/vnd.obn":{"source":"iana"},"application/vnd.ocf+cbor":{"source":"iana"},"application/vnd.oci.image.manifest.v1+json":{"source":"iana","compressible":true},"application/vnd.oftn.l10n+json":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessdownload+xml":{"source":"iana","compressible":true},"application/vnd.oipf.contentaccessstreaming+xml":{"source":"iana","compressible":true},"application/vnd.oipf.cspg-hexbinary":{"source":"iana"},"application/vnd.oipf.dae.svg+xml":{"source":"iana","compressible":true},"application/vnd.oipf.dae.xhtml+xml":{"source":"iana","compressible":true},"application/vnd.oipf.mippvcontrolmessage+xml":{"source":"iana","compressible":true},"application/vnd.oipf.pae.gem":{"source":"iana"},"application/vnd.oipf.spdiscovery+xml":{"source":"iana","compressible":true},"application/vnd.oipf.spdlist+xml":{"source":"iana","compressible":true},"application/vnd.oipf.ueprofile+xml":{"source":"iana","compressible":true},"application/vnd.oipf.userprofile+xml":{"source":"iana","compressible":true},"application/vnd.olpc-sugar":{"source":"iana","extensions":["xo"]},"application/vnd.oma-scws-config":{"source":"iana"},"application/vnd.oma-scws-http-request":{"source":"iana"},"application/vnd.oma-scws-http-response":{"source":"iana"},"application/vnd.oma.bcast.associated-procedure-parameter+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.drm-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.imd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.ltkm":{"source":"iana"},"application/vnd.oma.bcast.notification+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.provisioningtrigger":{"source":"iana"},"application/vnd.oma.bcast.sgboot":{"source":"iana"},"application/vnd.oma.bcast.sgdd+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sgdu":{"source":"iana"},"application/vnd.oma.bcast.simple-symbol-container":{"source":"iana"},"application/vnd.oma.bcast.smartcard-trigger+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.sprov+xml":{"source":"iana","compressible":true},"application/vnd.oma.bcast.stkm":{"source":"iana"},"application/vnd.oma.cab-address-book+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-feature-handler+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-pcc+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-subs-invite+xml":{"source":"iana","compressible":true},"application/vnd.oma.cab-user-prefs+xml":{"source":"iana","compressible":true},"application/vnd.oma.dcd":{"source":"iana"},"application/vnd.oma.dcdc":{"source":"iana"},"application/vnd.oma.dd2+xml":{"source":"iana","compressible":true,"extensions":["dd2"]},"application/vnd.oma.drm.risd+xml":{"source":"iana","compressible":true},"application/vnd.oma.group-usage-list+xml":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+cbor":{"source":"iana"},"application/vnd.oma.lwm2m+json":{"source":"iana","compressible":true},"application/vnd.oma.lwm2m+tlv":{"source":"iana"},"application/vnd.oma.pal+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.detailed-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.final-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.groups+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.invocation-descriptor+xml":{"source":"iana","compressible":true},"application/vnd.oma.poc.optimized-progress-report+xml":{"source":"iana","compressible":true},"application/vnd.oma.push":{"source":"iana"},"application/vnd.oma.scidm.messages+xml":{"source":"iana","compressible":true},"application/vnd.oma.xcap-directory+xml":{"source":"iana","compressible":true},"application/vnd.omads-email+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-file+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omads-folder+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.omaloc-supl-init":{"source":"iana"},"application/vnd.onepager":{"source":"iana"},"application/vnd.onepagertamp":{"source":"iana"},"application/vnd.onepagertamx":{"source":"iana"},"application/vnd.onepagertat":{"source":"iana"},"application/vnd.onepagertatp":{"source":"iana"},"application/vnd.onepagertatx":{"source":"iana"},"application/vnd.openblox.game+xml":{"source":"iana","compressible":true,"extensions":["obgx"]},"application/vnd.openblox.game-binary":{"source":"iana"},"application/vnd.openeye.oeb":{"source":"iana"},"application/vnd.openofficeorg.extension":{"source":"apache","extensions":["oxt"]},"application/vnd.openstreetmap.data+xml":{"source":"iana","compressible":true,"extensions":["osm"]},"application/vnd.opentimestamps.ots":{"source":"iana"},"application/vnd.openxmlformats-officedocument.custom-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.customxmlproperties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawing+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chart+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramcolors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramdata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramlayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.drawingml.diagramstyle+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.extended-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.commentauthors+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.handoutmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesmaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.notesslide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presentation":{"source":"iana","compressible":false,"extensions":["pptx"]},"application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.presprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slide":{"source":"iana","extensions":["sldx"]},"application/vnd.openxmlformats-officedocument.presentationml.slide+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidelayout+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slidemaster+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideshow":{"source":"iana","extensions":["ppsx"]},"application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.slideupdateinfo+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tablestyles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.tags+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.template":{"source":"iana","extensions":["potx"]},"application/vnd.openxmlformats-officedocument.presentationml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.presentationml.viewprops+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.calcchain+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.externallink+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcachedefinition+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotcacherecords+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.pivottable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.querytable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionheaders+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionlog+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedstrings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":{"source":"iana","compressible":false,"extensions":["xlsx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetmetadata+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.tablesinglecells+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.template":{"source":"iana","extensions":["xltx"]},"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.usernames+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.volatiledependencies+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.theme+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.themeoverride+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.vmldrawing":{"source":"iana"},"application/vnd.openxmlformats-officedocument.wordprocessingml.comments+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document":{"source":"iana","compressible":false,"extensions":["docx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.glossary+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.endnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.fonttable+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footer+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.footnotes+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.numbering+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.template":{"source":"iana","extensions":["dotx"]},"application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-officedocument.wordprocessingml.websettings+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.core-properties+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.digital-signature-xmlsignature+xml":{"source":"iana","compressible":true},"application/vnd.openxmlformats-package.relationships+xml":{"source":"iana","compressible":true},"application/vnd.oracle.resource+json":{"source":"iana","compressible":true},"application/vnd.orange.indata":{"source":"iana"},"application/vnd.osa.netdeploy":{"source":"iana"},"application/vnd.osgeo.mapguide.package":{"source":"iana","extensions":["mgp"]},"application/vnd.osgi.bundle":{"source":"iana"},"application/vnd.osgi.dp":{"source":"iana","extensions":["dp"]},"application/vnd.osgi.subsystem":{"source":"iana","extensions":["esa"]},"application/vnd.otps.ct-kip+xml":{"source":"iana","compressible":true},"application/vnd.oxli.countgraph":{"source":"iana"},"application/vnd.pagerduty+json":{"source":"iana","compressible":true},"application/vnd.palm":{"source":"iana","extensions":["pdb","pqa","oprc"]},"application/vnd.panoply":{"source":"iana"},"application/vnd.paos.xml":{"source":"iana"},"application/vnd.patentdive":{"source":"iana"},"application/vnd.patientecommsdoc":{"source":"iana"},"application/vnd.pawaafile":{"source":"iana","extensions":["paw"]},"application/vnd.pcos":{"source":"iana"},"application/vnd.pg.format":{"source":"iana","extensions":["str"]},"application/vnd.pg.osasli":{"source":"iana","extensions":["ei6"]},"application/vnd.piaccess.application-licence":{"source":"iana"},"application/vnd.picsel":{"source":"iana","extensions":["efif"]},"application/vnd.pmi.widget":{"source":"iana","extensions":["wg"]},"application/vnd.poc.group-advertisement+xml":{"source":"iana","compressible":true},"application/vnd.pocketlearn":{"source":"iana","extensions":["plf"]},"application/vnd.powerbuilder6":{"source":"iana","extensions":["pbd"]},"application/vnd.powerbuilder6-s":{"source":"iana"},"application/vnd.powerbuilder7":{"source":"iana"},"application/vnd.powerbuilder7-s":{"source":"iana"},"application/vnd.powerbuilder75":{"source":"iana"},"application/vnd.powerbuilder75-s":{"source":"iana"},"application/vnd.preminet":{"source":"iana"},"application/vnd.previewsystems.box":{"source":"iana","extensions":["box"]},"application/vnd.proteus.magazine":{"source":"iana","extensions":["mgz"]},"application/vnd.psfs":{"source":"iana"},"application/vnd.publishare-delta-tree":{"source":"iana","extensions":["qps"]},"application/vnd.pvi.ptid1":{"source":"iana","extensions":["ptid"]},"application/vnd.pwg-multiplexed":{"source":"iana"},"application/vnd.pwg-xhtml-print+xml":{"source":"iana","compressible":true},"application/vnd.qualcomm.brew-app-res":{"source":"iana"},"application/vnd.quarantainenet":{"source":"iana"},"application/vnd.quark.quarkxpress":{"source":"iana","extensions":["qxd","qxt","qwd","qwt","qxl","qxb"]},"application/vnd.quobject-quoxdocument":{"source":"iana"},"application/vnd.radisys.moml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-conn+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-audit-stream+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-conf+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-base+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-detect+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-fax-sendrecv+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-group+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-speech+xml":{"source":"iana","compressible":true},"application/vnd.radisys.msml-dialog-transform+xml":{"source":"iana","compressible":true},"application/vnd.rainstor.data":{"source":"iana"},"application/vnd.rapid":{"source":"iana"},"application/vnd.rar":{"source":"iana","extensions":["rar"]},"application/vnd.realvnc.bed":{"source":"iana","extensions":["bed"]},"application/vnd.recordare.musicxml":{"source":"iana","extensions":["mxl"]},"application/vnd.recordare.musicxml+xml":{"source":"iana","compressible":true,"extensions":["musicxml"]},"application/vnd.renlearn.rlprint":{"source":"iana"},"application/vnd.resilient.logic":{"source":"iana"},"application/vnd.restful+json":{"source":"iana","compressible":true},"application/vnd.rig.cryptonote":{"source":"iana","extensions":["cryptonote"]},"application/vnd.rim.cod":{"source":"apache","extensions":["cod"]},"application/vnd.rn-realmedia":{"source":"apache","extensions":["rm"]},"application/vnd.rn-realmedia-vbr":{"source":"apache","extensions":["rmvb"]},"application/vnd.route66.link66+xml":{"source":"iana","compressible":true,"extensions":["link66"]},"application/vnd.rs-274x":{"source":"iana"},"application/vnd.ruckus.download":{"source":"iana"},"application/vnd.s3sms":{"source":"iana"},"application/vnd.sailingtracker.track":{"source":"iana","extensions":["st"]},"application/vnd.sar":{"source":"iana"},"application/vnd.sbm.cid":{"source":"iana"},"application/vnd.sbm.mid2":{"source":"iana"},"application/vnd.scribus":{"source":"iana"},"application/vnd.sealed.3df":{"source":"iana"},"application/vnd.sealed.csf":{"source":"iana"},"application/vnd.sealed.doc":{"source":"iana"},"application/vnd.sealed.eml":{"source":"iana"},"application/vnd.sealed.mht":{"source":"iana"},"application/vnd.sealed.net":{"source":"iana"},"application/vnd.sealed.ppt":{"source":"iana"},"application/vnd.sealed.tiff":{"source":"iana"},"application/vnd.sealed.xls":{"source":"iana"},"application/vnd.sealedmedia.softseal.html":{"source":"iana"},"application/vnd.sealedmedia.softseal.pdf":{"source":"iana"},"application/vnd.seemail":{"source":"iana","extensions":["see"]},"application/vnd.seis+json":{"source":"iana","compressible":true},"application/vnd.sema":{"source":"iana","extensions":["sema"]},"application/vnd.semd":{"source":"iana","extensions":["semd"]},"application/vnd.semf":{"source":"iana","extensions":["semf"]},"application/vnd.shade-save-file":{"source":"iana"},"application/vnd.shana.informed.formdata":{"source":"iana","extensions":["ifm"]},"application/vnd.shana.informed.formtemplate":{"source":"iana","extensions":["itp"]},"application/vnd.shana.informed.interchange":{"source":"iana","extensions":["iif"]},"application/vnd.shana.informed.package":{"source":"iana","extensions":["ipk"]},"application/vnd.shootproof+json":{"source":"iana","compressible":true},"application/vnd.shopkick+json":{"source":"iana","compressible":true},"application/vnd.shp":{"source":"iana"},"application/vnd.shx":{"source":"iana"},"application/vnd.sigrok.session":{"source":"iana"},"application/vnd.simtech-mindmapper":{"source":"iana","extensions":["twd","twds"]},"application/vnd.siren+json":{"source":"iana","compressible":true},"application/vnd.smaf":{"source":"iana","extensions":["mmf"]},"application/vnd.smart.notebook":{"source":"iana"},"application/vnd.smart.teacher":{"source":"iana","extensions":["teacher"]},"application/vnd.snesdev-page-table":{"source":"iana"},"application/vnd.software602.filler.form+xml":{"source":"iana","compressible":true,"extensions":["fo"]},"application/vnd.software602.filler.form-xml-zip":{"source":"iana"},"application/vnd.solent.sdkm+xml":{"source":"iana","compressible":true,"extensions":["sdkm","sdkd"]},"application/vnd.spotfire.dxp":{"source":"iana","extensions":["dxp"]},"application/vnd.spotfire.sfs":{"source":"iana","extensions":["sfs"]},"application/vnd.sqlite3":{"source":"iana"},"application/vnd.sss-cod":{"source":"iana"},"application/vnd.sss-dtf":{"source":"iana"},"application/vnd.sss-ntf":{"source":"iana"},"application/vnd.stardivision.calc":{"source":"apache","extensions":["sdc"]},"application/vnd.stardivision.draw":{"source":"apache","extensions":["sda"]},"application/vnd.stardivision.impress":{"source":"apache","extensions":["sdd"]},"application/vnd.stardivision.math":{"source":"apache","extensions":["smf"]},"application/vnd.stardivision.writer":{"source":"apache","extensions":["sdw","vor"]},"application/vnd.stardivision.writer-global":{"source":"apache","extensions":["sgl"]},"application/vnd.stepmania.package":{"source":"iana","extensions":["smzip"]},"application/vnd.stepmania.stepchart":{"source":"iana","extensions":["sm"]},"application/vnd.street-stream":{"source":"iana"},"application/vnd.sun.wadl+xml":{"source":"iana","compressible":true,"extensions":["wadl"]},"application/vnd.sun.xml.calc":{"source":"apache","extensions":["sxc"]},"application/vnd.sun.xml.calc.template":{"source":"apache","extensions":["stc"]},"application/vnd.sun.xml.draw":{"source":"apache","extensions":["sxd"]},"application/vnd.sun.xml.draw.template":{"source":"apache","extensions":["std"]},"application/vnd.sun.xml.impress":{"source":"apache","extensions":["sxi"]},"application/vnd.sun.xml.impress.template":{"source":"apache","extensions":["sti"]},"application/vnd.sun.xml.math":{"source":"apache","extensions":["sxm"]},"application/vnd.sun.xml.writer":{"source":"apache","extensions":["sxw"]},"application/vnd.sun.xml.writer.global":{"source":"apache","extensions":["sxg"]},"application/vnd.sun.xml.writer.template":{"source":"apache","extensions":["stw"]},"application/vnd.sus-calendar":{"source":"iana","extensions":["sus","susp"]},"application/vnd.svd":{"source":"iana","extensions":["svd"]},"application/vnd.swiftview-ics":{"source":"iana"},"application/vnd.sycle+xml":{"source":"iana","compressible":true},"application/vnd.syft+json":{"source":"iana","compressible":true},"application/vnd.symbian.install":{"source":"apache","extensions":["sis","sisx"]},"application/vnd.syncml+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xsm"]},"application/vnd.syncml.dm+wbxml":{"source":"iana","charset":"UTF-8","extensions":["bdm"]},"application/vnd.syncml.dm+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["xdm"]},"application/vnd.syncml.dm.notification":{"source":"iana"},"application/vnd.syncml.dmddf+wbxml":{"source":"iana"},"application/vnd.syncml.dmddf+xml":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["ddf"]},"application/vnd.syncml.dmtnds+wbxml":{"source":"iana"},"application/vnd.syncml.dmtnds+xml":{"source":"iana","charset":"UTF-8","compressible":true},"application/vnd.syncml.ds.notification":{"source":"iana"},"application/vnd.tableschema+json":{"source":"iana","compressible":true},"application/vnd.tao.intent-module-archive":{"source":"iana","extensions":["tao"]},"application/vnd.tcpdump.pcap":{"source":"iana","extensions":["pcap","cap","dmp"]},"application/vnd.think-cell.ppttc+json":{"source":"iana","compressible":true},"application/vnd.tmd.mediaflex.api+xml":{"source":"iana","compressible":true},"application/vnd.tml":{"source":"iana"},"application/vnd.tmobile-livetv":{"source":"iana","extensions":["tmo"]},"application/vnd.tri.onesource":{"source":"iana"},"application/vnd.trid.tpt":{"source":"iana","extensions":["tpt"]},"application/vnd.triscape.mxs":{"source":"iana","extensions":["mxs"]},"application/vnd.trueapp":{"source":"iana","extensions":["tra"]},"application/vnd.truedoc":{"source":"iana"},"application/vnd.ubisoft.webplayer":{"source":"iana"},"application/vnd.ufdl":{"source":"iana","extensions":["ufd","ufdl"]},"application/vnd.uiq.theme":{"source":"iana","extensions":["utz"]},"application/vnd.umajin":{"source":"iana","extensions":["umj"]},"application/vnd.unity":{"source":"iana","extensions":["unityweb"]},"application/vnd.uoml+xml":{"source":"iana","compressible":true,"extensions":["uoml"]},"application/vnd.uplanet.alert":{"source":"iana"},"application/vnd.uplanet.alert-wbxml":{"source":"iana"},"application/vnd.uplanet.bearer-choice":{"source":"iana"},"application/vnd.uplanet.bearer-choice-wbxml":{"source":"iana"},"application/vnd.uplanet.cacheop":{"source":"iana"},"application/vnd.uplanet.cacheop-wbxml":{"source":"iana"},"application/vnd.uplanet.channel":{"source":"iana"},"application/vnd.uplanet.channel-wbxml":{"source":"iana"},"application/vnd.uplanet.list":{"source":"iana"},"application/vnd.uplanet.list-wbxml":{"source":"iana"},"application/vnd.uplanet.listcmd":{"source":"iana"},"application/vnd.uplanet.listcmd-wbxml":{"source":"iana"},"application/vnd.uplanet.signal":{"source":"iana"},"application/vnd.uri-map":{"source":"iana"},"application/vnd.valve.source.material":{"source":"iana"},"application/vnd.vcx":{"source":"iana","extensions":["vcx"]},"application/vnd.vd-study":{"source":"iana"},"application/vnd.vectorworks":{"source":"iana"},"application/vnd.vel+json":{"source":"iana","compressible":true},"application/vnd.verimatrix.vcas":{"source":"iana"},"application/vnd.veritone.aion+json":{"source":"iana","compressible":true},"application/vnd.veryant.thin":{"source":"iana"},"application/vnd.ves.encrypted":{"source":"iana"},"application/vnd.vidsoft.vidconference":{"source":"iana"},"application/vnd.visio":{"source":"iana","extensions":["vsd","vst","vss","vsw"]},"application/vnd.visionary":{"source":"iana","extensions":["vis"]},"application/vnd.vividence.scriptfile":{"source":"iana"},"application/vnd.vsf":{"source":"iana","extensions":["vsf"]},"application/vnd.wap.sic":{"source":"iana"},"application/vnd.wap.slc":{"source":"iana"},"application/vnd.wap.wbxml":{"source":"iana","charset":"UTF-8","extensions":["wbxml"]},"application/vnd.wap.wmlc":{"source":"iana","extensions":["wmlc"]},"application/vnd.wap.wmlscriptc":{"source":"iana","extensions":["wmlsc"]},"application/vnd.webturbo":{"source":"iana","extensions":["wtb"]},"application/vnd.wfa.dpp":{"source":"iana"},"application/vnd.wfa.p2p":{"source":"iana"},"application/vnd.wfa.wsc":{"source":"iana"},"application/vnd.windows.devicepairing":{"source":"iana"},"application/vnd.wmc":{"source":"iana"},"application/vnd.wmf.bootstrap":{"source":"iana"},"application/vnd.wolfram.mathematica":{"source":"iana"},"application/vnd.wolfram.mathematica.package":{"source":"iana"},"application/vnd.wolfram.player":{"source":"iana","extensions":["nbp"]},"application/vnd.wordperfect":{"source":"iana","extensions":["wpd"]},"application/vnd.wqd":{"source":"iana","extensions":["wqd"]},"application/vnd.wrq-hp3000-labelled":{"source":"iana"},"application/vnd.wt.stf":{"source":"iana","extensions":["stf"]},"application/vnd.wv.csp+wbxml":{"source":"iana"},"application/vnd.wv.csp+xml":{"source":"iana","compressible":true},"application/vnd.wv.ssp+xml":{"source":"iana","compressible":true},"application/vnd.xacml+json":{"source":"iana","compressible":true},"application/vnd.xara":{"source":"iana","extensions":["xar"]},"application/vnd.xfdl":{"source":"iana","extensions":["xfdl"]},"application/vnd.xfdl.webform":{"source":"iana"},"application/vnd.xmi+xml":{"source":"iana","compressible":true},"application/vnd.xmpie.cpkg":{"source":"iana"},"application/vnd.xmpie.dpkg":{"source":"iana"},"application/vnd.xmpie.plan":{"source":"iana"},"application/vnd.xmpie.ppkg":{"source":"iana"},"application/vnd.xmpie.xlim":{"source":"iana"},"application/vnd.yamaha.hv-dic":{"source":"iana","extensions":["hvd"]},"application/vnd.yamaha.hv-script":{"source":"iana","extensions":["hvs"]},"application/vnd.yamaha.hv-voice":{"source":"iana","extensions":["hvp"]},"application/vnd.yamaha.openscoreformat":{"source":"iana","extensions":["osf"]},"application/vnd.yamaha.openscoreformat.osfpvg+xml":{"source":"iana","compressible":true,"extensions":["osfpvg"]},"application/vnd.yamaha.remote-setup":{"source":"iana"},"application/vnd.yamaha.smaf-audio":{"source":"iana","extensions":["saf"]},"application/vnd.yamaha.smaf-phrase":{"source":"iana","extensions":["spf"]},"application/vnd.yamaha.through-ngn":{"source":"iana"},"application/vnd.yamaha.tunnel-udpencap":{"source":"iana"},"application/vnd.yaoweme":{"source":"iana"},"application/vnd.yellowriver-custom-menu":{"source":"iana","extensions":["cmp"]},"application/vnd.youtube.yt":{"source":"iana"},"application/vnd.zul":{"source":"iana","extensions":["zir","zirz"]},"application/vnd.zzazz.deck+xml":{"source":"iana","compressible":true,"extensions":["zaz"]},"application/voicexml+xml":{"source":"iana","compressible":true,"extensions":["vxml"]},"application/voucher-cms+json":{"source":"iana","compressible":true},"application/vq-rtcpxr":{"source":"iana"},"application/wasm":{"source":"iana","compressible":true,"extensions":["wasm"]},"application/watcherinfo+xml":{"source":"iana","compressible":true,"extensions":["wif"]},"application/webpush-options+json":{"source":"iana","compressible":true},"application/whoispp-query":{"source":"iana"},"application/whoispp-response":{"source":"iana"},"application/widget":{"source":"iana","extensions":["wgt"]},"application/winhlp":{"source":"apache","extensions":["hlp"]},"application/wita":{"source":"iana"},"application/wordperfect5.1":{"source":"iana"},"application/wsdl+xml":{"source":"iana","compressible":true,"extensions":["wsdl"]},"application/wspolicy+xml":{"source":"iana","compressible":true,"extensions":["wspolicy"]},"application/x-7z-compressed":{"source":"apache","compressible":false,"extensions":["7z"]},"application/x-abiword":{"source":"apache","extensions":["abw"]},"application/x-ace-compressed":{"source":"apache","extensions":["ace"]},"application/x-amf":{"source":"apache"},"application/x-apple-diskimage":{"source":"apache","extensions":["dmg"]},"application/x-arj":{"compressible":false,"extensions":["arj"]},"application/x-authorware-bin":{"source":"apache","extensions":["aab","x32","u32","vox"]},"application/x-authorware-map":{"source":"apache","extensions":["aam"]},"application/x-authorware-seg":{"source":"apache","extensions":["aas"]},"application/x-bcpio":{"source":"apache","extensions":["bcpio"]},"application/x-bdoc":{"compressible":false,"extensions":["bdoc"]},"application/x-bittorrent":{"source":"apache","extensions":["torrent"]},"application/x-blorb":{"source":"apache","extensions":["blb","blorb"]},"application/x-bzip":{"source":"apache","compressible":false,"extensions":["bz"]},"application/x-bzip2":{"source":"apache","compressible":false,"extensions":["bz2","boz"]},"application/x-cbr":{"source":"apache","extensions":["cbr","cba","cbt","cbz","cb7"]},"application/x-cdlink":{"source":"apache","extensions":["vcd"]},"application/x-cfs-compressed":{"source":"apache","extensions":["cfs"]},"application/x-chat":{"source":"apache","extensions":["chat"]},"application/x-chess-pgn":{"source":"apache","extensions":["pgn"]},"application/x-chrome-extension":{"extensions":["crx"]},"application/x-cocoa":{"source":"nginx","extensions":["cco"]},"application/x-compress":{"source":"apache"},"application/x-conference":{"source":"apache","extensions":["nsc"]},"application/x-cpio":{"source":"apache","extensions":["cpio"]},"application/x-csh":{"source":"apache","extensions":["csh"]},"application/x-deb":{"compressible":false},"application/x-debian-package":{"source":"apache","extensions":["deb","udeb"]},"application/x-dgc-compressed":{"source":"apache","extensions":["dgc"]},"application/x-director":{"source":"apache","extensions":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"]},"application/x-doom":{"source":"apache","extensions":["wad"]},"application/x-dtbncx+xml":{"source":"apache","compressible":true,"extensions":["ncx"]},"application/x-dtbook+xml":{"source":"apache","compressible":true,"extensions":["dtb"]},"application/x-dtbresource+xml":{"source":"apache","compressible":true,"extensions":["res"]},"application/x-dvi":{"source":"apache","compressible":false,"extensions":["dvi"]},"application/x-envoy":{"source":"apache","extensions":["evy"]},"application/x-eva":{"source":"apache","extensions":["eva"]},"application/x-font-bdf":{"source":"apache","extensions":["bdf"]},"application/x-font-dos":{"source":"apache"},"application/x-font-framemaker":{"source":"apache"},"application/x-font-ghostscript":{"source":"apache","extensions":["gsf"]},"application/x-font-libgrx":{"source":"apache"},"application/x-font-linux-psf":{"source":"apache","extensions":["psf"]},"application/x-font-pcf":{"source":"apache","extensions":["pcf"]},"application/x-font-snf":{"source":"apache","extensions":["snf"]},"application/x-font-speedo":{"source":"apache"},"application/x-font-sunos-news":{"source":"apache"},"application/x-font-type1":{"source":"apache","extensions":["pfa","pfb","pfm","afm"]},"application/x-font-vfont":{"source":"apache"},"application/x-freearc":{"source":"apache","extensions":["arc"]},"application/x-futuresplash":{"source":"apache","extensions":["spl"]},"application/x-gca-compressed":{"source":"apache","extensions":["gca"]},"application/x-glulx":{"source":"apache","extensions":["ulx"]},"application/x-gnumeric":{"source":"apache","extensions":["gnumeric"]},"application/x-gramps-xml":{"source":"apache","extensions":["gramps"]},"application/x-gtar":{"source":"apache","extensions":["gtar"]},"application/x-gzip":{"source":"apache"},"application/x-hdf":{"source":"apache","extensions":["hdf"]},"application/x-httpd-php":{"compressible":true,"extensions":["php"]},"application/x-install-instructions":{"source":"apache","extensions":["install"]},"application/x-iso9660-image":{"source":"apache","extensions":["iso"]},"application/x-iwork-keynote-sffkey":{"extensions":["key"]},"application/x-iwork-numbers-sffnumbers":{"extensions":["numbers"]},"application/x-iwork-pages-sffpages":{"extensions":["pages"]},"application/x-java-archive-diff":{"source":"nginx","extensions":["jardiff"]},"application/x-java-jnlp-file":{"source":"apache","compressible":false,"extensions":["jnlp"]},"application/x-javascript":{"compressible":true},"application/x-keepass2":{"extensions":["kdbx"]},"application/x-latex":{"source":"apache","compressible":false,"extensions":["latex"]},"application/x-lua-bytecode":{"extensions":["luac"]},"application/x-lzh-compressed":{"source":"apache","extensions":["lzh","lha"]},"application/x-makeself":{"source":"nginx","extensions":["run"]},"application/x-mie":{"source":"apache","extensions":["mie"]},"application/x-mobipocket-ebook":{"source":"apache","extensions":["prc","mobi"]},"application/x-mpegurl":{"compressible":false},"application/x-ms-application":{"source":"apache","extensions":["application"]},"application/x-ms-shortcut":{"source":"apache","extensions":["lnk"]},"application/x-ms-wmd":{"source":"apache","extensions":["wmd"]},"application/x-ms-wmz":{"source":"apache","extensions":["wmz"]},"application/x-ms-xbap":{"source":"apache","extensions":["xbap"]},"application/x-msaccess":{"source":"apache","extensions":["mdb"]},"application/x-msbinder":{"source":"apache","extensions":["obd"]},"application/x-mscardfile":{"source":"apache","extensions":["crd"]},"application/x-msclip":{"source":"apache","extensions":["clp"]},"application/x-msdos-program":{"extensions":["exe"]},"application/x-msdownload":{"source":"apache","extensions":["exe","dll","com","bat","msi"]},"application/x-msmediaview":{"source":"apache","extensions":["mvb","m13","m14"]},"application/x-msmetafile":{"source":"apache","extensions":["wmf","wmz","emf","emz"]},"application/x-msmoney":{"source":"apache","extensions":["mny"]},"application/x-mspublisher":{"source":"apache","extensions":["pub"]},"application/x-msschedule":{"source":"apache","extensions":["scd"]},"application/x-msterminal":{"source":"apache","extensions":["trm"]},"application/x-mswrite":{"source":"apache","extensions":["wri"]},"application/x-netcdf":{"source":"apache","extensions":["nc","cdf"]},"application/x-ns-proxy-autoconfig":{"compressible":true,"extensions":["pac"]},"application/x-nzb":{"source":"apache","extensions":["nzb"]},"application/x-perl":{"source":"nginx","extensions":["pl","pm"]},"application/x-pilot":{"source":"nginx","extensions":["prc","pdb"]},"application/x-pkcs12":{"source":"apache","compressible":false,"extensions":["p12","pfx"]},"application/x-pkcs7-certificates":{"source":"apache","extensions":["p7b","spc"]},"application/x-pkcs7-certreqresp":{"source":"apache","extensions":["p7r"]},"application/x-pki-message":{"source":"iana"},"application/x-rar-compressed":{"source":"apache","compressible":false,"extensions":["rar"]},"application/x-redhat-package-manager":{"source":"nginx","extensions":["rpm"]},"application/x-research-info-systems":{"source":"apache","extensions":["ris"]},"application/x-sea":{"source":"nginx","extensions":["sea"]},"application/x-sh":{"source":"apache","compressible":true,"extensions":["sh"]},"application/x-shar":{"source":"apache","extensions":["shar"]},"application/x-shockwave-flash":{"source":"apache","compressible":false,"extensions":["swf"]},"application/x-silverlight-app":{"source":"apache","extensions":["xap"]},"application/x-sql":{"source":"apache","extensions":["sql"]},"application/x-stuffit":{"source":"apache","compressible":false,"extensions":["sit"]},"application/x-stuffitx":{"source":"apache","extensions":["sitx"]},"application/x-subrip":{"source":"apache","extensions":["srt"]},"application/x-sv4cpio":{"source":"apache","extensions":["sv4cpio"]},"application/x-sv4crc":{"source":"apache","extensions":["sv4crc"]},"application/x-t3vm-image":{"source":"apache","extensions":["t3"]},"application/x-tads":{"source":"apache","extensions":["gam"]},"application/x-tar":{"source":"apache","compressible":true,"extensions":["tar"]},"application/x-tcl":{"source":"apache","extensions":["tcl","tk"]},"application/x-tex":{"source":"apache","extensions":["tex"]},"application/x-tex-tfm":{"source":"apache","extensions":["tfm"]},"application/x-texinfo":{"source":"apache","extensions":["texinfo","texi"]},"application/x-tgif":{"source":"apache","extensions":["obj"]},"application/x-ustar":{"source":"apache","extensions":["ustar"]},"application/x-virtualbox-hdd":{"compressible":true,"extensions":["hdd"]},"application/x-virtualbox-ova":{"compressible":true,"extensions":["ova"]},"application/x-virtualbox-ovf":{"compressible":true,"extensions":["ovf"]},"application/x-virtualbox-vbox":{"compressible":true,"extensions":["vbox"]},"application/x-virtualbox-vbox-extpack":{"compressible":false,"extensions":["vbox-extpack"]},"application/x-virtualbox-vdi":{"compressible":true,"extensions":["vdi"]},"application/x-virtualbox-vhd":{"compressible":true,"extensions":["vhd"]},"application/x-virtualbox-vmdk":{"compressible":true,"extensions":["vmdk"]},"application/x-wais-source":{"source":"apache","extensions":["src"]},"application/x-web-app-manifest+json":{"compressible":true,"extensions":["webapp"]},"application/x-www-form-urlencoded":{"source":"iana","compressible":true},"application/x-x509-ca-cert":{"source":"iana","extensions":["der","crt","pem"]},"application/x-x509-ca-ra-cert":{"source":"iana"},"application/x-x509-next-ca-cert":{"source":"iana"},"application/x-xfig":{"source":"apache","extensions":["fig"]},"application/x-xliff+xml":{"source":"apache","compressible":true,"extensions":["xlf"]},"application/x-xpinstall":{"source":"apache","compressible":false,"extensions":["xpi"]},"application/x-xz":{"source":"apache","extensions":["xz"]},"application/x-zmachine":{"source":"apache","extensions":["z1","z2","z3","z4","z5","z6","z7","z8"]},"application/x400-bp":{"source":"iana"},"application/xacml+xml":{"source":"iana","compressible":true},"application/xaml+xml":{"source":"apache","compressible":true,"extensions":["xaml"]},"application/xcap-att+xml":{"source":"iana","compressible":true,"extensions":["xav"]},"application/xcap-caps+xml":{"source":"iana","compressible":true,"extensions":["xca"]},"application/xcap-diff+xml":{"source":"iana","compressible":true,"extensions":["xdf"]},"application/xcap-el+xml":{"source":"iana","compressible":true,"extensions":["xel"]},"application/xcap-error+xml":{"source":"iana","compressible":true},"application/xcap-ns+xml":{"source":"iana","compressible":true,"extensions":["xns"]},"application/xcon-conference-info+xml":{"source":"iana","compressible":true},"application/xcon-conference-info-diff+xml":{"source":"iana","compressible":true},"application/xenc+xml":{"source":"iana","compressible":true,"extensions":["xenc"]},"application/xhtml+xml":{"source":"iana","compressible":true,"extensions":["xhtml","xht"]},"application/xhtml-voice+xml":{"source":"apache","compressible":true},"application/xliff+xml":{"source":"iana","compressible":true,"extensions":["xlf"]},"application/xml":{"source":"iana","compressible":true,"extensions":["xml","xsl","xsd","rng"]},"application/xml-dtd":{"source":"iana","compressible":true,"extensions":["dtd"]},"application/xml-external-parsed-entity":{"source":"iana"},"application/xml-patch+xml":{"source":"iana","compressible":true},"application/xmpp+xml":{"source":"iana","compressible":true},"application/xop+xml":{"source":"iana","compressible":true,"extensions":["xop"]},"application/xproc+xml":{"source":"apache","compressible":true,"extensions":["xpl"]},"application/xslt+xml":{"source":"iana","compressible":true,"extensions":["xsl","xslt"]},"application/xspf+xml":{"source":"apache","compressible":true,"extensions":["xspf"]},"application/xv+xml":{"source":"iana","compressible":true,"extensions":["mxml","xhvml","xvml","xvm"]},"application/yang":{"source":"iana","extensions":["yang"]},"application/yang-data+json":{"source":"iana","compressible":true},"application/yang-data+xml":{"source":"iana","compressible":true},"application/yang-patch+json":{"source":"iana","compressible":true},"application/yang-patch+xml":{"source":"iana","compressible":true},"application/yin+xml":{"source":"iana","compressible":true,"extensions":["yin"]},"application/zip":{"source":"iana","compressible":false,"extensions":["zip"]},"application/zlib":{"source":"iana"},"application/zstd":{"source":"iana"},"audio/1d-interleaved-parityfec":{"source":"iana"},"audio/32kadpcm":{"source":"iana"},"audio/3gpp":{"source":"iana","compressible":false,"extensions":["3gpp"]},"audio/3gpp2":{"source":"iana"},"audio/aac":{"source":"iana"},"audio/ac3":{"source":"iana"},"audio/adpcm":{"source":"apache","extensions":["adp"]},"audio/amr":{"source":"iana","extensions":["amr"]},"audio/amr-wb":{"source":"iana"},"audio/amr-wb+":{"source":"iana"},"audio/aptx":{"source":"iana"},"audio/asc":{"source":"iana"},"audio/atrac-advanced-lossless":{"source":"iana"},"audio/atrac-x":{"source":"iana"},"audio/atrac3":{"source":"iana"},"audio/basic":{"source":"iana","compressible":false,"extensions":["au","snd"]},"audio/bv16":{"source":"iana"},"audio/bv32":{"source":"iana"},"audio/clearmode":{"source":"iana"},"audio/cn":{"source":"iana"},"audio/dat12":{"source":"iana"},"audio/dls":{"source":"iana"},"audio/dsr-es201108":{"source":"iana"},"audio/dsr-es202050":{"source":"iana"},"audio/dsr-es202211":{"source":"iana"},"audio/dsr-es202212":{"source":"iana"},"audio/dv":{"source":"iana"},"audio/dvi4":{"source":"iana"},"audio/eac3":{"source":"iana"},"audio/encaprtp":{"source":"iana"},"audio/evrc":{"source":"iana"},"audio/evrc-qcp":{"source":"iana"},"audio/evrc0":{"source":"iana"},"audio/evrc1":{"source":"iana"},"audio/evrcb":{"source":"iana"},"audio/evrcb0":{"source":"iana"},"audio/evrcb1":{"source":"iana"},"audio/evrcnw":{"source":"iana"},"audio/evrcnw0":{"source":"iana"},"audio/evrcnw1":{"source":"iana"},"audio/evrcwb":{"source":"iana"},"audio/evrcwb0":{"source":"iana"},"audio/evrcwb1":{"source":"iana"},"audio/evs":{"source":"iana"},"audio/flexfec":{"source":"iana"},"audio/fwdred":{"source":"iana"},"audio/g711-0":{"source":"iana"},"audio/g719":{"source":"iana"},"audio/g722":{"source":"iana"},"audio/g7221":{"source":"iana"},"audio/g723":{"source":"iana"},"audio/g726-16":{"source":"iana"},"audio/g726-24":{"source":"iana"},"audio/g726-32":{"source":"iana"},"audio/g726-40":{"source":"iana"},"audio/g728":{"source":"iana"},"audio/g729":{"source":"iana"},"audio/g7291":{"source":"iana"},"audio/g729d":{"source":"iana"},"audio/g729e":{"source":"iana"},"audio/gsm":{"source":"iana"},"audio/gsm-efr":{"source":"iana"},"audio/gsm-hr-08":{"source":"iana"},"audio/ilbc":{"source":"iana"},"audio/ip-mr_v2.5":{"source":"iana"},"audio/isac":{"source":"apache"},"audio/l16":{"source":"iana"},"audio/l20":{"source":"iana"},"audio/l24":{"source":"iana","compressible":false},"audio/l8":{"source":"iana"},"audio/lpc":{"source":"iana"},"audio/melp":{"source":"iana"},"audio/melp1200":{"source":"iana"},"audio/melp2400":{"source":"iana"},"audio/melp600":{"source":"iana"},"audio/mhas":{"source":"iana"},"audio/midi":{"source":"apache","extensions":["mid","midi","kar","rmi"]},"audio/mobile-xmf":{"source":"iana","extensions":["mxmf"]},"audio/mp3":{"compressible":false,"extensions":["mp3"]},"audio/mp4":{"source":"iana","compressible":false,"extensions":["m4a","mp4a"]},"audio/mp4a-latm":{"source":"iana"},"audio/mpa":{"source":"iana"},"audio/mpa-robust":{"source":"iana"},"audio/mpeg":{"source":"iana","compressible":false,"extensions":["mpga","mp2","mp2a","mp3","m2a","m3a"]},"audio/mpeg4-generic":{"source":"iana"},"audio/musepack":{"source":"apache"},"audio/ogg":{"source":"iana","compressible":false,"extensions":["oga","ogg","spx","opus"]},"audio/opus":{"source":"iana"},"audio/parityfec":{"source":"iana"},"audio/pcma":{"source":"iana"},"audio/pcma-wb":{"source":"iana"},"audio/pcmu":{"source":"iana"},"audio/pcmu-wb":{"source":"iana"},"audio/prs.sid":{"source":"iana"},"audio/qcelp":{"source":"iana"},"audio/raptorfec":{"source":"iana"},"audio/red":{"source":"iana"},"audio/rtp-enc-aescm128":{"source":"iana"},"audio/rtp-midi":{"source":"iana"},"audio/rtploopback":{"source":"iana"},"audio/rtx":{"source":"iana"},"audio/s3m":{"source":"apache","extensions":["s3m"]},"audio/scip":{"source":"iana"},"audio/silk":{"source":"apache","extensions":["sil"]},"audio/smv":{"source":"iana"},"audio/smv-qcp":{"source":"iana"},"audio/smv0":{"source":"iana"},"audio/sofa":{"source":"iana"},"audio/sp-midi":{"source":"iana"},"audio/speex":{"source":"iana"},"audio/t140c":{"source":"iana"},"audio/t38":{"source":"iana"},"audio/telephone-event":{"source":"iana"},"audio/tetra_acelp":{"source":"iana"},"audio/tetra_acelp_bb":{"source":"iana"},"audio/tone":{"source":"iana"},"audio/tsvcis":{"source":"iana"},"audio/uemclip":{"source":"iana"},"audio/ulpfec":{"source":"iana"},"audio/usac":{"source":"iana"},"audio/vdvi":{"source":"iana"},"audio/vmr-wb":{"source":"iana"},"audio/vnd.3gpp.iufp":{"source":"iana"},"audio/vnd.4sb":{"source":"iana"},"audio/vnd.audiokoz":{"source":"iana"},"audio/vnd.celp":{"source":"iana"},"audio/vnd.cisco.nse":{"source":"iana"},"audio/vnd.cmles.radio-events":{"source":"iana"},"audio/vnd.cns.anp1":{"source":"iana"},"audio/vnd.cns.inf1":{"source":"iana"},"audio/vnd.dece.audio":{"source":"iana","extensions":["uva","uvva"]},"audio/vnd.digital-winds":{"source":"iana","extensions":["eol"]},"audio/vnd.dlna.adts":{"source":"iana"},"audio/vnd.dolby.heaac.1":{"source":"iana"},"audio/vnd.dolby.heaac.2":{"source":"iana"},"audio/vnd.dolby.mlp":{"source":"iana"},"audio/vnd.dolby.mps":{"source":"iana"},"audio/vnd.dolby.pl2":{"source":"iana"},"audio/vnd.dolby.pl2x":{"source":"iana"},"audio/vnd.dolby.pl2z":{"source":"iana"},"audio/vnd.dolby.pulse.1":{"source":"iana"},"audio/vnd.dra":{"source":"iana","extensions":["dra"]},"audio/vnd.dts":{"source":"iana","extensions":["dts"]},"audio/vnd.dts.hd":{"source":"iana","extensions":["dtshd"]},"audio/vnd.dts.uhd":{"source":"iana"},"audio/vnd.dvb.file":{"source":"iana"},"audio/vnd.everad.plj":{"source":"iana"},"audio/vnd.hns.audio":{"source":"iana"},"audio/vnd.lucent.voice":{"source":"iana","extensions":["lvp"]},"audio/vnd.ms-playready.media.pya":{"source":"iana","extensions":["pya"]},"audio/vnd.nokia.mobile-xmf":{"source":"iana"},"audio/vnd.nortel.vbk":{"source":"iana"},"audio/vnd.nuera.ecelp4800":{"source":"iana","extensions":["ecelp4800"]},"audio/vnd.nuera.ecelp7470":{"source":"iana","extensions":["ecelp7470"]},"audio/vnd.nuera.ecelp9600":{"source":"iana","extensions":["ecelp9600"]},"audio/vnd.octel.sbc":{"source":"iana"},"audio/vnd.presonus.multitrack":{"source":"iana"},"audio/vnd.qcelp":{"source":"iana"},"audio/vnd.rhetorex.32kadpcm":{"source":"iana"},"audio/vnd.rip":{"source":"iana","extensions":["rip"]},"audio/vnd.rn-realaudio":{"compressible":false},"audio/vnd.sealedmedia.softseal.mpeg":{"source":"iana"},"audio/vnd.vmx.cvsd":{"source":"iana"},"audio/vnd.wave":{"compressible":false},"audio/vorbis":{"source":"iana","compressible":false},"audio/vorbis-config":{"source":"iana"},"audio/wav":{"compressible":false,"extensions":["wav"]},"audio/wave":{"compressible":false,"extensions":["wav"]},"audio/webm":{"source":"apache","compressible":false,"extensions":["weba"]},"audio/x-aac":{"source":"apache","compressible":false,"extensions":["aac"]},"audio/x-aiff":{"source":"apache","extensions":["aif","aiff","aifc"]},"audio/x-caf":{"source":"apache","compressible":false,"extensions":["caf"]},"audio/x-flac":{"source":"apache","extensions":["flac"]},"audio/x-m4a":{"source":"nginx","extensions":["m4a"]},"audio/x-matroska":{"source":"apache","extensions":["mka"]},"audio/x-mpegurl":{"source":"apache","extensions":["m3u"]},"audio/x-ms-wax":{"source":"apache","extensions":["wax"]},"audio/x-ms-wma":{"source":"apache","extensions":["wma"]},"audio/x-pn-realaudio":{"source":"apache","extensions":["ram","ra"]},"audio/x-pn-realaudio-plugin":{"source":"apache","extensions":["rmp"]},"audio/x-realaudio":{"source":"nginx","extensions":["ra"]},"audio/x-tta":{"source":"apache"},"audio/x-wav":{"source":"apache","extensions":["wav"]},"audio/xm":{"source":"apache","extensions":["xm"]},"chemical/x-cdx":{"source":"apache","extensions":["cdx"]},"chemical/x-cif":{"source":"apache","extensions":["cif"]},"chemical/x-cmdf":{"source":"apache","extensions":["cmdf"]},"chemical/x-cml":{"source":"apache","extensions":["cml"]},"chemical/x-csml":{"source":"apache","extensions":["csml"]},"chemical/x-pdb":{"source":"apache"},"chemical/x-xyz":{"source":"apache","extensions":["xyz"]},"font/collection":{"source":"iana","extensions":["ttc"]},"font/otf":{"source":"iana","compressible":true,"extensions":["otf"]},"font/sfnt":{"source":"iana"},"font/ttf":{"source":"iana","compressible":true,"extensions":["ttf"]},"font/woff":{"source":"iana","extensions":["woff"]},"font/woff2":{"source":"iana","extensions":["woff2"]},"image/aces":{"source":"iana","extensions":["exr"]},"image/apng":{"compressible":false,"extensions":["apng"]},"image/avci":{"source":"iana","extensions":["avci"]},"image/avcs":{"source":"iana","extensions":["avcs"]},"image/avif":{"source":"iana","compressible":false,"extensions":["avif"]},"image/bmp":{"source":"iana","compressible":true,"extensions":["bmp"]},"image/cgm":{"source":"iana","extensions":["cgm"]},"image/dicom-rle":{"source":"iana","extensions":["drle"]},"image/emf":{"source":"iana","extensions":["emf"]},"image/fits":{"source":"iana","extensions":["fits"]},"image/g3fax":{"source":"iana","extensions":["g3"]},"image/gif":{"source":"iana","compressible":false,"extensions":["gif"]},"image/heic":{"source":"iana","extensions":["heic"]},"image/heic-sequence":{"source":"iana","extensions":["heics"]},"image/heif":{"source":"iana","extensions":["heif"]},"image/heif-sequence":{"source":"iana","extensions":["heifs"]},"image/hej2k":{"source":"iana","extensions":["hej2"]},"image/hsj2":{"source":"iana","extensions":["hsj2"]},"image/ief":{"source":"iana","extensions":["ief"]},"image/jls":{"source":"iana","extensions":["jls"]},"image/jp2":{"source":"iana","compressible":false,"extensions":["jp2","jpg2"]},"image/jpeg":{"source":"iana","compressible":false,"extensions":["jpeg","jpg","jpe"]},"image/jph":{"source":"iana","extensions":["jph"]},"image/jphc":{"source":"iana","extensions":["jhc"]},"image/jpm":{"source":"iana","compressible":false,"extensions":["jpm"]},"image/jpx":{"source":"iana","compressible":false,"extensions":["jpx","jpf"]},"image/jxr":{"source":"iana","extensions":["jxr"]},"image/jxra":{"source":"iana","extensions":["jxra"]},"image/jxrs":{"source":"iana","extensions":["jxrs"]},"image/jxs":{"source":"iana","extensions":["jxs"]},"image/jxsc":{"source":"iana","extensions":["jxsc"]},"image/jxsi":{"source":"iana","extensions":["jxsi"]},"image/jxss":{"source":"iana","extensions":["jxss"]},"image/ktx":{"source":"iana","extensions":["ktx"]},"image/ktx2":{"source":"iana","extensions":["ktx2"]},"image/naplps":{"source":"iana"},"image/pjpeg":{"compressible":false},"image/png":{"source":"iana","compressible":false,"extensions":["png"]},"image/prs.btif":{"source":"iana","extensions":["btif"]},"image/prs.pti":{"source":"iana","extensions":["pti"]},"image/pwg-raster":{"source":"iana"},"image/sgi":{"source":"apache","extensions":["sgi"]},"image/svg+xml":{"source":"iana","compressible":true,"extensions":["svg","svgz"]},"image/t38":{"source":"iana","extensions":["t38"]},"image/tiff":{"source":"iana","compressible":false,"extensions":["tif","tiff"]},"image/tiff-fx":{"source":"iana","extensions":["tfx"]},"image/vnd.adobe.photoshop":{"source":"iana","compressible":true,"extensions":["psd"]},"image/vnd.airzip.accelerator.azv":{"source":"iana","extensions":["azv"]},"image/vnd.cns.inf2":{"source":"iana"},"image/vnd.dece.graphic":{"source":"iana","extensions":["uvi","uvvi","uvg","uvvg"]},"image/vnd.djvu":{"source":"iana","extensions":["djvu","djv"]},"image/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"image/vnd.dwg":{"source":"iana","extensions":["dwg"]},"image/vnd.dxf":{"source":"iana","extensions":["dxf"]},"image/vnd.fastbidsheet":{"source":"iana","extensions":["fbs"]},"image/vnd.fpx":{"source":"iana","extensions":["fpx"]},"image/vnd.fst":{"source":"iana","extensions":["fst"]},"image/vnd.fujixerox.edmics-mmr":{"source":"iana","extensions":["mmr"]},"image/vnd.fujixerox.edmics-rlc":{"source":"iana","extensions":["rlc"]},"image/vnd.globalgraphics.pgb":{"source":"iana"},"image/vnd.microsoft.icon":{"source":"iana","compressible":true,"extensions":["ico"]},"image/vnd.mix":{"source":"iana"},"image/vnd.mozilla.apng":{"source":"iana"},"image/vnd.ms-dds":{"compressible":true,"extensions":["dds"]},"image/vnd.ms-modi":{"source":"iana","extensions":["mdi"]},"image/vnd.ms-photo":{"source":"apache","extensions":["wdp"]},"image/vnd.net-fpx":{"source":"iana","extensions":["npx"]},"image/vnd.pco.b16":{"source":"iana","extensions":["b16"]},"image/vnd.radiance":{"source":"iana"},"image/vnd.sealed.png":{"source":"iana"},"image/vnd.sealedmedia.softseal.gif":{"source":"iana"},"image/vnd.sealedmedia.softseal.jpg":{"source":"iana"},"image/vnd.svf":{"source":"iana"},"image/vnd.tencent.tap":{"source":"iana","extensions":["tap"]},"image/vnd.valve.source.texture":{"source":"iana","extensions":["vtf"]},"image/vnd.wap.wbmp":{"source":"iana","extensions":["wbmp"]},"image/vnd.xiff":{"source":"iana","extensions":["xif"]},"image/vnd.zbrush.pcx":{"source":"iana","extensions":["pcx"]},"image/webp":{"source":"apache","extensions":["webp"]},"image/wmf":{"source":"iana","extensions":["wmf"]},"image/x-3ds":{"source":"apache","extensions":["3ds"]},"image/x-cmu-raster":{"source":"apache","extensions":["ras"]},"image/x-cmx":{"source":"apache","extensions":["cmx"]},"image/x-freehand":{"source":"apache","extensions":["fh","fhc","fh4","fh5","fh7"]},"image/x-icon":{"source":"apache","compressible":true,"extensions":["ico"]},"image/x-jng":{"source":"nginx","extensions":["jng"]},"image/x-mrsid-image":{"source":"apache","extensions":["sid"]},"image/x-ms-bmp":{"source":"nginx","compressible":true,"extensions":["bmp"]},"image/x-pcx":{"source":"apache","extensions":["pcx"]},"image/x-pict":{"source":"apache","extensions":["pic","pct"]},"image/x-portable-anymap":{"source":"apache","extensions":["pnm"]},"image/x-portable-bitmap":{"source":"apache","extensions":["pbm"]},"image/x-portable-graymap":{"source":"apache","extensions":["pgm"]},"image/x-portable-pixmap":{"source":"apache","extensions":["ppm"]},"image/x-rgb":{"source":"apache","extensions":["rgb"]},"image/x-tga":{"source":"apache","extensions":["tga"]},"image/x-xbitmap":{"source":"apache","extensions":["xbm"]},"image/x-xcf":{"compressible":false},"image/x-xpixmap":{"source":"apache","extensions":["xpm"]},"image/x-xwindowdump":{"source":"apache","extensions":["xwd"]},"message/cpim":{"source":"iana"},"message/delivery-status":{"source":"iana"},"message/disposition-notification":{"source":"iana","extensions":["disposition-notification"]},"message/external-body":{"source":"iana"},"message/feedback-report":{"source":"iana"},"message/global":{"source":"iana","extensions":["u8msg"]},"message/global-delivery-status":{"source":"iana","extensions":["u8dsn"]},"message/global-disposition-notification":{"source":"iana","extensions":["u8mdn"]},"message/global-headers":{"source":"iana","extensions":["u8hdr"]},"message/http":{"source":"iana","compressible":false},"message/imdn+xml":{"source":"iana","compressible":true},"message/news":{"source":"iana"},"message/partial":{"source":"iana","compressible":false},"message/rfc822":{"source":"iana","compressible":true,"extensions":["eml","mime"]},"message/s-http":{"source":"iana"},"message/sip":{"source":"iana"},"message/sipfrag":{"source":"iana"},"message/tracking-status":{"source":"iana"},"message/vnd.si.simp":{"source":"iana"},"message/vnd.wfa.wsc":{"source":"iana","extensions":["wsc"]},"model/3mf":{"source":"iana","extensions":["3mf"]},"model/e57":{"source":"iana"},"model/gltf+json":{"source":"iana","compressible":true,"extensions":["gltf"]},"model/gltf-binary":{"source":"iana","compressible":true,"extensions":["glb"]},"model/iges":{"source":"iana","compressible":false,"extensions":["igs","iges"]},"model/mesh":{"source":"iana","compressible":false,"extensions":["msh","mesh","silo"]},"model/mtl":{"source":"iana","extensions":["mtl"]},"model/obj":{"source":"iana","extensions":["obj"]},"model/step":{"source":"iana"},"model/step+xml":{"source":"iana","compressible":true,"extensions":["stpx"]},"model/step+zip":{"source":"iana","compressible":false,"extensions":["stpz"]},"model/step-xml+zip":{"source":"iana","compressible":false,"extensions":["stpxz"]},"model/stl":{"source":"iana","extensions":["stl"]},"model/vnd.collada+xml":{"source":"iana","compressible":true,"extensions":["dae"]},"model/vnd.dwf":{"source":"iana","extensions":["dwf"]},"model/vnd.flatland.3dml":{"source":"iana"},"model/vnd.gdl":{"source":"iana","extensions":["gdl"]},"model/vnd.gs-gdl":{"source":"apache"},"model/vnd.gs.gdl":{"source":"iana"},"model/vnd.gtw":{"source":"iana","extensions":["gtw"]},"model/vnd.moml+xml":{"source":"iana","compressible":true},"model/vnd.mts":{"source":"iana","extensions":["mts"]},"model/vnd.opengex":{"source":"iana","extensions":["ogex"]},"model/vnd.parasolid.transmit.binary":{"source":"iana","extensions":["x_b"]},"model/vnd.parasolid.transmit.text":{"source":"iana","extensions":["x_t"]},"model/vnd.pytha.pyox":{"source":"iana"},"model/vnd.rosette.annotated-data-model":{"source":"iana"},"model/vnd.sap.vds":{"source":"iana","extensions":["vds"]},"model/vnd.usdz+zip":{"source":"iana","compressible":false,"extensions":["usdz"]},"model/vnd.valve.source.compiled-map":{"source":"iana","extensions":["bsp"]},"model/vnd.vtu":{"source":"iana","extensions":["vtu"]},"model/vrml":{"source":"iana","compressible":false,"extensions":["wrl","vrml"]},"model/x3d+binary":{"source":"apache","compressible":false,"extensions":["x3db","x3dbz"]},"model/x3d+fastinfoset":{"source":"iana","extensions":["x3db"]},"model/x3d+vrml":{"source":"apache","compressible":false,"extensions":["x3dv","x3dvz"]},"model/x3d+xml":{"source":"iana","compressible":true,"extensions":["x3d","x3dz"]},"model/x3d-vrml":{"source":"iana","extensions":["x3dv"]},"multipart/alternative":{"source":"iana","compressible":false},"multipart/appledouble":{"source":"iana"},"multipart/byteranges":{"source":"iana"},"multipart/digest":{"source":"iana"},"multipart/encrypted":{"source":"iana","compressible":false},"multipart/form-data":{"source":"iana","compressible":false},"multipart/header-set":{"source":"iana"},"multipart/mixed":{"source":"iana"},"multipart/multilingual":{"source":"iana"},"multipart/parallel":{"source":"iana"},"multipart/related":{"source":"iana","compressible":false},"multipart/report":{"source":"iana"},"multipart/signed":{"source":"iana","compressible":false},"multipart/vnd.bint.med-plus":{"source":"iana"},"multipart/voice-message":{"source":"iana"},"multipart/x-mixed-replace":{"source":"iana"},"text/1d-interleaved-parityfec":{"source":"iana"},"text/cache-manifest":{"source":"iana","compressible":true,"extensions":["appcache","manifest"]},"text/calendar":{"source":"iana","extensions":["ics","ifb"]},"text/calender":{"compressible":true},"text/cmd":{"compressible":true},"text/coffeescript":{"extensions":["coffee","litcoffee"]},"text/cql":{"source":"iana"},"text/cql-expression":{"source":"iana"},"text/cql-identifier":{"source":"iana"},"text/css":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["css"]},"text/csv":{"source":"iana","compressible":true,"extensions":["csv"]},"text/csv-schema":{"source":"iana"},"text/directory":{"source":"iana"},"text/dns":{"source":"iana"},"text/ecmascript":{"source":"iana"},"text/encaprtp":{"source":"iana"},"text/enriched":{"source":"iana"},"text/fhirpath":{"source":"iana"},"text/flexfec":{"source":"iana"},"text/fwdred":{"source":"iana"},"text/gff3":{"source":"iana"},"text/grammar-ref-list":{"source":"iana"},"text/html":{"source":"iana","compressible":true,"extensions":["html","htm","shtml"]},"text/jade":{"extensions":["jade"]},"text/javascript":{"source":"iana","compressible":true},"text/jcr-cnd":{"source":"iana"},"text/jsx":{"compressible":true,"extensions":["jsx"]},"text/less":{"compressible":true,"extensions":["less"]},"text/markdown":{"source":"iana","compressible":true,"extensions":["markdown","md"]},"text/mathml":{"source":"nginx","extensions":["mml"]},"text/mdx":{"compressible":true,"extensions":["mdx"]},"text/mizar":{"source":"iana"},"text/n3":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["n3"]},"text/parameters":{"source":"iana","charset":"UTF-8"},"text/parityfec":{"source":"iana"},"text/plain":{"source":"iana","compressible":true,"extensions":["txt","text","conf","def","list","log","in","ini"]},"text/provenance-notation":{"source":"iana","charset":"UTF-8"},"text/prs.fallenstein.rst":{"source":"iana"},"text/prs.lines.tag":{"source":"iana","extensions":["dsc"]},"text/prs.prop.logic":{"source":"iana"},"text/raptorfec":{"source":"iana"},"text/red":{"source":"iana"},"text/rfc822-headers":{"source":"iana"},"text/richtext":{"source":"iana","compressible":true,"extensions":["rtx"]},"text/rtf":{"source":"iana","compressible":true,"extensions":["rtf"]},"text/rtp-enc-aescm128":{"source":"iana"},"text/rtploopback":{"source":"iana"},"text/rtx":{"source":"iana"},"text/sgml":{"source":"iana","extensions":["sgml","sgm"]},"text/shaclc":{"source":"iana"},"text/shex":{"source":"iana","extensions":["shex"]},"text/slim":{"extensions":["slim","slm"]},"text/spdx":{"source":"iana","extensions":["spdx"]},"text/strings":{"source":"iana"},"text/stylus":{"extensions":["stylus","styl"]},"text/t140":{"source":"iana"},"text/tab-separated-values":{"source":"iana","compressible":true,"extensions":["tsv"]},"text/troff":{"source":"iana","extensions":["t","tr","roff","man","me","ms"]},"text/turtle":{"source":"iana","charset":"UTF-8","extensions":["ttl"]},"text/ulpfec":{"source":"iana"},"text/uri-list":{"source":"iana","compressible":true,"extensions":["uri","uris","urls"]},"text/vcard":{"source":"iana","compressible":true,"extensions":["vcard"]},"text/vnd.a":{"source":"iana"},"text/vnd.abc":{"source":"iana"},"text/vnd.ascii-art":{"source":"iana"},"text/vnd.curl":{"source":"iana","extensions":["curl"]},"text/vnd.curl.dcurl":{"source":"apache","extensions":["dcurl"]},"text/vnd.curl.mcurl":{"source":"apache","extensions":["mcurl"]},"text/vnd.curl.scurl":{"source":"apache","extensions":["scurl"]},"text/vnd.debian.copyright":{"source":"iana","charset":"UTF-8"},"text/vnd.dmclientscript":{"source":"iana"},"text/vnd.dvb.subtitle":{"source":"iana","extensions":["sub"]},"text/vnd.esmertec.theme-descriptor":{"source":"iana","charset":"UTF-8"},"text/vnd.familysearch.gedcom":{"source":"iana","extensions":["ged"]},"text/vnd.ficlab.flt":{"source":"iana"},"text/vnd.fly":{"source":"iana","extensions":["fly"]},"text/vnd.fmi.flexstor":{"source":"iana","extensions":["flx"]},"text/vnd.gml":{"source":"iana"},"text/vnd.graphviz":{"source":"iana","extensions":["gv"]},"text/vnd.hans":{"source":"iana"},"text/vnd.hgl":{"source":"iana"},"text/vnd.in3d.3dml":{"source":"iana","extensions":["3dml"]},"text/vnd.in3d.spot":{"source":"iana","extensions":["spot"]},"text/vnd.iptc.newsml":{"source":"iana"},"text/vnd.iptc.nitf":{"source":"iana"},"text/vnd.latex-z":{"source":"iana"},"text/vnd.motorola.reflex":{"source":"iana"},"text/vnd.ms-mediapackage":{"source":"iana"},"text/vnd.net2phone.commcenter.command":{"source":"iana"},"text/vnd.radisys.msml-basic-layout":{"source":"iana"},"text/vnd.senx.warpscript":{"source":"iana"},"text/vnd.si.uricatalogue":{"source":"iana"},"text/vnd.sosi":{"source":"iana"},"text/vnd.sun.j2me.app-descriptor":{"source":"iana","charset":"UTF-8","extensions":["jad"]},"text/vnd.trolltech.linguist":{"source":"iana","charset":"UTF-8"},"text/vnd.wap.si":{"source":"iana"},"text/vnd.wap.sl":{"source":"iana"},"text/vnd.wap.wml":{"source":"iana","extensions":["wml"]},"text/vnd.wap.wmlscript":{"source":"iana","extensions":["wmls"]},"text/vtt":{"source":"iana","charset":"UTF-8","compressible":true,"extensions":["vtt"]},"text/x-asm":{"source":"apache","extensions":["s","asm"]},"text/x-c":{"source":"apache","extensions":["c","cc","cxx","cpp","h","hh","dic"]},"text/x-component":{"source":"nginx","extensions":["htc"]},"text/x-fortran":{"source":"apache","extensions":["f","for","f77","f90"]},"text/x-gwt-rpc":{"compressible":true},"text/x-handlebars-template":{"extensions":["hbs"]},"text/x-java-source":{"source":"apache","extensions":["java"]},"text/x-jquery-tmpl":{"compressible":true},"text/x-lua":{"extensions":["lua"]},"text/x-markdown":{"compressible":true,"extensions":["mkd"]},"text/x-nfo":{"source":"apache","extensions":["nfo"]},"text/x-opml":{"source":"apache","extensions":["opml"]},"text/x-org":{"compressible":true,"extensions":["org"]},"text/x-pascal":{"source":"apache","extensions":["p","pas"]},"text/x-processing":{"compressible":true,"extensions":["pde"]},"text/x-sass":{"extensions":["sass"]},"text/x-scss":{"extensions":["scss"]},"text/x-setext":{"source":"apache","extensions":["etx"]},"text/x-sfv":{"source":"apache","extensions":["sfv"]},"text/x-suse-ymp":{"compressible":true,"extensions":["ymp"]},"text/x-uuencode":{"source":"apache","extensions":["uu"]},"text/x-vcalendar":{"source":"apache","extensions":["vcs"]},"text/x-vcard":{"source":"apache","extensions":["vcf"]},"text/xml":{"source":"iana","compressible":true,"extensions":["xml"]},"text/xml-external-parsed-entity":{"source":"iana"},"text/yaml":{"compressible":true,"extensions":["yaml","yml"]},"video/1d-interleaved-parityfec":{"source":"iana"},"video/3gpp":{"source":"iana","extensions":["3gp","3gpp"]},"video/3gpp-tt":{"source":"iana"},"video/3gpp2":{"source":"iana","extensions":["3g2"]},"video/av1":{"source":"iana"},"video/bmpeg":{"source":"iana"},"video/bt656":{"source":"iana"},"video/celb":{"source":"iana"},"video/dv":{"source":"iana"},"video/encaprtp":{"source":"iana"},"video/ffv1":{"source":"iana"},"video/flexfec":{"source":"iana"},"video/h261":{"source":"iana","extensions":["h261"]},"video/h263":{"source":"iana","extensions":["h263"]},"video/h263-1998":{"source":"iana"},"video/h263-2000":{"source":"iana"},"video/h264":{"source":"iana","extensions":["h264"]},"video/h264-rcdo":{"source":"iana"},"video/h264-svc":{"source":"iana"},"video/h265":{"source":"iana"},"video/iso.segment":{"source":"iana","extensions":["m4s"]},"video/jpeg":{"source":"iana","extensions":["jpgv"]},"video/jpeg2000":{"source":"iana"},"video/jpm":{"source":"apache","extensions":["jpm","jpgm"]},"video/jxsv":{"source":"iana"},"video/mj2":{"source":"iana","extensions":["mj2","mjp2"]},"video/mp1s":{"source":"iana"},"video/mp2p":{"source":"iana"},"video/mp2t":{"source":"iana","extensions":["ts"]},"video/mp4":{"source":"iana","compressible":false,"extensions":["mp4","mp4v","mpg4"]},"video/mp4v-es":{"source":"iana"},"video/mpeg":{"source":"iana","compressible":false,"extensions":["mpeg","mpg","mpe","m1v","m2v"]},"video/mpeg4-generic":{"source":"iana"},"video/mpv":{"source":"iana"},"video/nv":{"source":"iana"},"video/ogg":{"source":"iana","compressible":false,"extensions":["ogv"]},"video/parityfec":{"source":"iana"},"video/pointer":{"source":"iana"},"video/quicktime":{"source":"iana","compressible":false,"extensions":["qt","mov"]},"video/raptorfec":{"source":"iana"},"video/raw":{"source":"iana"},"video/rtp-enc-aescm128":{"source":"iana"},"video/rtploopback":{"source":"iana"},"video/rtx":{"source":"iana"},"video/scip":{"source":"iana"},"video/smpte291":{"source":"iana"},"video/smpte292m":{"source":"iana"},"video/ulpfec":{"source":"iana"},"video/vc1":{"source":"iana"},"video/vc2":{"source":"iana"},"video/vnd.cctv":{"source":"iana"},"video/vnd.dece.hd":{"source":"iana","extensions":["uvh","uvvh"]},"video/vnd.dece.mobile":{"source":"iana","extensions":["uvm","uvvm"]},"video/vnd.dece.mp4":{"source":"iana"},"video/vnd.dece.pd":{"source":"iana","extensions":["uvp","uvvp"]},"video/vnd.dece.sd":{"source":"iana","extensions":["uvs","uvvs"]},"video/vnd.dece.video":{"source":"iana","extensions":["uvv","uvvv"]},"video/vnd.directv.mpeg":{"source":"iana"},"video/vnd.directv.mpeg-tts":{"source":"iana"},"video/vnd.dlna.mpeg-tts":{"source":"iana"},"video/vnd.dvb.file":{"source":"iana","extensions":["dvb"]},"video/vnd.fvt":{"source":"iana","extensions":["fvt"]},"video/vnd.hns.video":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.1dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-1010":{"source":"iana"},"video/vnd.iptvforum.2dparityfec-2005":{"source":"iana"},"video/vnd.iptvforum.ttsavc":{"source":"iana"},"video/vnd.iptvforum.ttsmpeg2":{"source":"iana"},"video/vnd.motorola.video":{"source":"iana"},"video/vnd.motorola.videop":{"source":"iana"},"video/vnd.mpegurl":{"source":"iana","extensions":["mxu","m4u"]},"video/vnd.ms-playready.media.pyv":{"source":"iana","extensions":["pyv"]},"video/vnd.nokia.interleaved-multimedia":{"source":"iana"},"video/vnd.nokia.mp4vr":{"source":"iana"},"video/vnd.nokia.videovoip":{"source":"iana"},"video/vnd.objectvideo":{"source":"iana"},"video/vnd.radgamettools.bink":{"source":"iana"},"video/vnd.radgamettools.smacker":{"source":"iana"},"video/vnd.sealed.mpeg1":{"source":"iana"},"video/vnd.sealed.mpeg4":{"source":"iana"},"video/vnd.sealed.swf":{"source":"iana"},"video/vnd.sealedmedia.softseal.mov":{"source":"iana"},"video/vnd.uvvu.mp4":{"source":"iana","extensions":["uvu","uvvu"]},"video/vnd.vivo":{"source":"iana","extensions":["viv"]},"video/vnd.youtube.yt":{"source":"iana"},"video/vp8":{"source":"iana"},"video/vp9":{"source":"iana"},"video/webm":{"source":"apache","compressible":false,"extensions":["webm"]},"video/x-f4v":{"source":"apache","extensions":["f4v"]},"video/x-fli":{"source":"apache","extensions":["fli"]},"video/x-flv":{"source":"apache","compressible":false,"extensions":["flv"]},"video/x-m4v":{"source":"apache","extensions":["m4v"]},"video/x-matroska":{"source":"apache","compressible":false,"extensions":["mkv","mk3d","mks"]},"video/x-mng":{"source":"apache","extensions":["mng"]},"video/x-ms-asf":{"source":"apache","extensions":["asf","asx"]},"video/x-ms-vob":{"source":"apache","extensions":["vob"]},"video/x-ms-wm":{"source":"apache","extensions":["wm"]},"video/x-ms-wmv":{"source":"apache","compressible":false,"extensions":["wmv"]},"video/x-ms-wmx":{"source":"apache","extensions":["wmx"]},"video/x-ms-wvx":{"source":"apache","extensions":["wvx"]},"video/x-msvideo":{"source":"apache","extensions":["avi"]},"video/x-sgi-movie":{"source":"apache","extensions":["movie"]},"video/x-smv":{"source":"apache","extensions":["smv"]},"x-conference/x-cooltalk":{"source":"apache","extensions":["ice"]},"x-shader/x-fragment":{"compressible":true},"x-shader/x-vertex":{"compressible":true}}'); + +/***/ }), + +/***/ 72020: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"],[[47,47],"disallowed_STD3_valid"],[[48,57],"valid"],[[58,64],"disallowed_STD3_valid"],[[65,65],"mapped",[97]],[[66,66],"mapped",[98]],[[67,67],"mapped",[99]],[[68,68],"mapped",[100]],[[69,69],"mapped",[101]],[[70,70],"mapped",[102]],[[71,71],"mapped",[103]],[[72,72],"mapped",[104]],[[73,73],"mapped",[105]],[[74,74],"mapped",[106]],[[75,75],"mapped",[107]],[[76,76],"mapped",[108]],[[77,77],"mapped",[109]],[[78,78],"mapped",[110]],[[79,79],"mapped",[111]],[[80,80],"mapped",[112]],[[81,81],"mapped",[113]],[[82,82],"mapped",[114]],[[83,83],"mapped",[115]],[[84,84],"mapped",[116]],[[85,85],"mapped",[117]],[[86,86],"mapped",[118]],[[87,87],"mapped",[119]],[[88,88],"mapped",[120]],[[89,89],"mapped",[121]],[[90,90],"mapped",[122]],[[91,96],"disallowed_STD3_valid"],[[97,122],"valid"],[[123,127],"disallowed_STD3_valid"],[[128,159],"disallowed"],[[160,160],"disallowed_STD3_mapped",[32]],[[161,167],"valid",[],"NV8"],[[168,168],"disallowed_STD3_mapped",[32,776]],[[169,169],"valid",[],"NV8"],[[170,170],"mapped",[97]],[[171,172],"valid",[],"NV8"],[[173,173],"ignored"],[[174,174],"valid",[],"NV8"],[[175,175],"disallowed_STD3_mapped",[32,772]],[[176,177],"valid",[],"NV8"],[[178,178],"mapped",[50]],[[179,179],"mapped",[51]],[[180,180],"disallowed_STD3_mapped",[32,769]],[[181,181],"mapped",[956]],[[182,182],"valid",[],"NV8"],[[183,183],"valid"],[[184,184],"disallowed_STD3_mapped",[32,807]],[[185,185],"mapped",[49]],[[186,186],"mapped",[111]],[[187,187],"valid",[],"NV8"],[[188,188],"mapped",[49,8260,52]],[[189,189],"mapped",[49,8260,50]],[[190,190],"mapped",[51,8260,52]],[[191,191],"valid",[],"NV8"],[[192,192],"mapped",[224]],[[193,193],"mapped",[225]],[[194,194],"mapped",[226]],[[195,195],"mapped",[227]],[[196,196],"mapped",[228]],[[197,197],"mapped",[229]],[[198,198],"mapped",[230]],[[199,199],"mapped",[231]],[[200,200],"mapped",[232]],[[201,201],"mapped",[233]],[[202,202],"mapped",[234]],[[203,203],"mapped",[235]],[[204,204],"mapped",[236]],[[205,205],"mapped",[237]],[[206,206],"mapped",[238]],[[207,207],"mapped",[239]],[[208,208],"mapped",[240]],[[209,209],"mapped",[241]],[[210,210],"mapped",[242]],[[211,211],"mapped",[243]],[[212,212],"mapped",[244]],[[213,213],"mapped",[245]],[[214,214],"mapped",[246]],[[215,215],"valid",[],"NV8"],[[216,216],"mapped",[248]],[[217,217],"mapped",[249]],[[218,218],"mapped",[250]],[[219,219],"mapped",[251]],[[220,220],"mapped",[252]],[[221,221],"mapped",[253]],[[222,222],"mapped",[254]],[[223,223],"deviation",[115,115]],[[224,246],"valid"],[[247,247],"valid",[],"NV8"],[[248,255],"valid"],[[256,256],"mapped",[257]],[[257,257],"valid"],[[258,258],"mapped",[259]],[[259,259],"valid"],[[260,260],"mapped",[261]],[[261,261],"valid"],[[262,262],"mapped",[263]],[[263,263],"valid"],[[264,264],"mapped",[265]],[[265,265],"valid"],[[266,266],"mapped",[267]],[[267,267],"valid"],[[268,268],"mapped",[269]],[[269,269],"valid"],[[270,270],"mapped",[271]],[[271,271],"valid"],[[272,272],"mapped",[273]],[[273,273],"valid"],[[274,274],"mapped",[275]],[[275,275],"valid"],[[276,276],"mapped",[277]],[[277,277],"valid"],[[278,278],"mapped",[279]],[[279,279],"valid"],[[280,280],"mapped",[281]],[[281,281],"valid"],[[282,282],"mapped",[283]],[[283,283],"valid"],[[284,284],"mapped",[285]],[[285,285],"valid"],[[286,286],"mapped",[287]],[[287,287],"valid"],[[288,288],"mapped",[289]],[[289,289],"valid"],[[290,290],"mapped",[291]],[[291,291],"valid"],[[292,292],"mapped",[293]],[[293,293],"valid"],[[294,294],"mapped",[295]],[[295,295],"valid"],[[296,296],"mapped",[297]],[[297,297],"valid"],[[298,298],"mapped",[299]],[[299,299],"valid"],[[300,300],"mapped",[301]],[[301,301],"valid"],[[302,302],"mapped",[303]],[[303,303],"valid"],[[304,304],"mapped",[105,775]],[[305,305],"valid"],[[306,307],"mapped",[105,106]],[[308,308],"mapped",[309]],[[309,309],"valid"],[[310,310],"mapped",[311]],[[311,312],"valid"],[[313,313],"mapped",[314]],[[314,314],"valid"],[[315,315],"mapped",[316]],[[316,316],"valid"],[[317,317],"mapped",[318]],[[318,318],"valid"],[[319,320],"mapped",[108,183]],[[321,321],"mapped",[322]],[[322,322],"valid"],[[323,323],"mapped",[324]],[[324,324],"valid"],[[325,325],"mapped",[326]],[[326,326],"valid"],[[327,327],"mapped",[328]],[[328,328],"valid"],[[329,329],"mapped",[700,110]],[[330,330],"mapped",[331]],[[331,331],"valid"],[[332,332],"mapped",[333]],[[333,333],"valid"],[[334,334],"mapped",[335]],[[335,335],"valid"],[[336,336],"mapped",[337]],[[337,337],"valid"],[[338,338],"mapped",[339]],[[339,339],"valid"],[[340,340],"mapped",[341]],[[341,341],"valid"],[[342,342],"mapped",[343]],[[343,343],"valid"],[[344,344],"mapped",[345]],[[345,345],"valid"],[[346,346],"mapped",[347]],[[347,347],"valid"],[[348,348],"mapped",[349]],[[349,349],"valid"],[[350,350],"mapped",[351]],[[351,351],"valid"],[[352,352],"mapped",[353]],[[353,353],"valid"],[[354,354],"mapped",[355]],[[355,355],"valid"],[[356,356],"mapped",[357]],[[357,357],"valid"],[[358,358],"mapped",[359]],[[359,359],"valid"],[[360,360],"mapped",[361]],[[361,361],"valid"],[[362,362],"mapped",[363]],[[363,363],"valid"],[[364,364],"mapped",[365]],[[365,365],"valid"],[[366,366],"mapped",[367]],[[367,367],"valid"],[[368,368],"mapped",[369]],[[369,369],"valid"],[[370,370],"mapped",[371]],[[371,371],"valid"],[[372,372],"mapped",[373]],[[373,373],"valid"],[[374,374],"mapped",[375]],[[375,375],"valid"],[[376,376],"mapped",[255]],[[377,377],"mapped",[378]],[[378,378],"valid"],[[379,379],"mapped",[380]],[[380,380],"valid"],[[381,381],"mapped",[382]],[[382,382],"valid"],[[383,383],"mapped",[115]],[[384,384],"valid"],[[385,385],"mapped",[595]],[[386,386],"mapped",[387]],[[387,387],"valid"],[[388,388],"mapped",[389]],[[389,389],"valid"],[[390,390],"mapped",[596]],[[391,391],"mapped",[392]],[[392,392],"valid"],[[393,393],"mapped",[598]],[[394,394],"mapped",[599]],[[395,395],"mapped",[396]],[[396,397],"valid"],[[398,398],"mapped",[477]],[[399,399],"mapped",[601]],[[400,400],"mapped",[603]],[[401,401],"mapped",[402]],[[402,402],"valid"],[[403,403],"mapped",[608]],[[404,404],"mapped",[611]],[[405,405],"valid"],[[406,406],"mapped",[617]],[[407,407],"mapped",[616]],[[408,408],"mapped",[409]],[[409,411],"valid"],[[412,412],"mapped",[623]],[[413,413],"mapped",[626]],[[414,414],"valid"],[[415,415],"mapped",[629]],[[416,416],"mapped",[417]],[[417,417],"valid"],[[418,418],"mapped",[419]],[[419,419],"valid"],[[420,420],"mapped",[421]],[[421,421],"valid"],[[422,422],"mapped",[640]],[[423,423],"mapped",[424]],[[424,424],"valid"],[[425,425],"mapped",[643]],[[426,427],"valid"],[[428,428],"mapped",[429]],[[429,429],"valid"],[[430,430],"mapped",[648]],[[431,431],"mapped",[432]],[[432,432],"valid"],[[433,433],"mapped",[650]],[[434,434],"mapped",[651]],[[435,435],"mapped",[436]],[[436,436],"valid"],[[437,437],"mapped",[438]],[[438,438],"valid"],[[439,439],"mapped",[658]],[[440,440],"mapped",[441]],[[441,443],"valid"],[[444,444],"mapped",[445]],[[445,451],"valid"],[[452,454],"mapped",[100,382]],[[455,457],"mapped",[108,106]],[[458,460],"mapped",[110,106]],[[461,461],"mapped",[462]],[[462,462],"valid"],[[463,463],"mapped",[464]],[[464,464],"valid"],[[465,465],"mapped",[466]],[[466,466],"valid"],[[467,467],"mapped",[468]],[[468,468],"valid"],[[469,469],"mapped",[470]],[[470,470],"valid"],[[471,471],"mapped",[472]],[[472,472],"valid"],[[473,473],"mapped",[474]],[[474,474],"valid"],[[475,475],"mapped",[476]],[[476,477],"valid"],[[478,478],"mapped",[479]],[[479,479],"valid"],[[480,480],"mapped",[481]],[[481,481],"valid"],[[482,482],"mapped",[483]],[[483,483],"valid"],[[484,484],"mapped",[485]],[[485,485],"valid"],[[486,486],"mapped",[487]],[[487,487],"valid"],[[488,488],"mapped",[489]],[[489,489],"valid"],[[490,490],"mapped",[491]],[[491,491],"valid"],[[492,492],"mapped",[493]],[[493,493],"valid"],[[494,494],"mapped",[495]],[[495,496],"valid"],[[497,499],"mapped",[100,122]],[[500,500],"mapped",[501]],[[501,501],"valid"],[[502,502],"mapped",[405]],[[503,503],"mapped",[447]],[[504,504],"mapped",[505]],[[505,505],"valid"],[[506,506],"mapped",[507]],[[507,507],"valid"],[[508,508],"mapped",[509]],[[509,509],"valid"],[[510,510],"mapped",[511]],[[511,511],"valid"],[[512,512],"mapped",[513]],[[513,513],"valid"],[[514,514],"mapped",[515]],[[515,515],"valid"],[[516,516],"mapped",[517]],[[517,517],"valid"],[[518,518],"mapped",[519]],[[519,519],"valid"],[[520,520],"mapped",[521]],[[521,521],"valid"],[[522,522],"mapped",[523]],[[523,523],"valid"],[[524,524],"mapped",[525]],[[525,525],"valid"],[[526,526],"mapped",[527]],[[527,527],"valid"],[[528,528],"mapped",[529]],[[529,529],"valid"],[[530,530],"mapped",[531]],[[531,531],"valid"],[[532,532],"mapped",[533]],[[533,533],"valid"],[[534,534],"mapped",[535]],[[535,535],"valid"],[[536,536],"mapped",[537]],[[537,537],"valid"],[[538,538],"mapped",[539]],[[539,539],"valid"],[[540,540],"mapped",[541]],[[541,541],"valid"],[[542,542],"mapped",[543]],[[543,543],"valid"],[[544,544],"mapped",[414]],[[545,545],"valid"],[[546,546],"mapped",[547]],[[547,547],"valid"],[[548,548],"mapped",[549]],[[549,549],"valid"],[[550,550],"mapped",[551]],[[551,551],"valid"],[[552,552],"mapped",[553]],[[553,553],"valid"],[[554,554],"mapped",[555]],[[555,555],"valid"],[[556,556],"mapped",[557]],[[557,557],"valid"],[[558,558],"mapped",[559]],[[559,559],"valid"],[[560,560],"mapped",[561]],[[561,561],"valid"],[[562,562],"mapped",[563]],[[563,563],"valid"],[[564,566],"valid"],[[567,569],"valid"],[[570,570],"mapped",[11365]],[[571,571],"mapped",[572]],[[572,572],"valid"],[[573,573],"mapped",[410]],[[574,574],"mapped",[11366]],[[575,576],"valid"],[[577,577],"mapped",[578]],[[578,578],"valid"],[[579,579],"mapped",[384]],[[580,580],"mapped",[649]],[[581,581],"mapped",[652]],[[582,582],"mapped",[583]],[[583,583],"valid"],[[584,584],"mapped",[585]],[[585,585],"valid"],[[586,586],"mapped",[587]],[[587,587],"valid"],[[588,588],"mapped",[589]],[[589,589],"valid"],[[590,590],"mapped",[591]],[[591,591],"valid"],[[592,680],"valid"],[[681,685],"valid"],[[686,687],"valid"],[[688,688],"mapped",[104]],[[689,689],"mapped",[614]],[[690,690],"mapped",[106]],[[691,691],"mapped",[114]],[[692,692],"mapped",[633]],[[693,693],"mapped",[635]],[[694,694],"mapped",[641]],[[695,695],"mapped",[119]],[[696,696],"mapped",[121]],[[697,705],"valid"],[[706,709],"valid",[],"NV8"],[[710,721],"valid"],[[722,727],"valid",[],"NV8"],[[728,728],"disallowed_STD3_mapped",[32,774]],[[729,729],"disallowed_STD3_mapped",[32,775]],[[730,730],"disallowed_STD3_mapped",[32,778]],[[731,731],"disallowed_STD3_mapped",[32,808]],[[732,732],"disallowed_STD3_mapped",[32,771]],[[733,733],"disallowed_STD3_mapped",[32,779]],[[734,734],"valid",[],"NV8"],[[735,735],"valid",[],"NV8"],[[736,736],"mapped",[611]],[[737,737],"mapped",[108]],[[738,738],"mapped",[115]],[[739,739],"mapped",[120]],[[740,740],"mapped",[661]],[[741,745],"valid",[],"NV8"],[[746,747],"valid",[],"NV8"],[[748,748],"valid"],[[749,749],"valid",[],"NV8"],[[750,750],"valid"],[[751,767],"valid",[],"NV8"],[[768,831],"valid"],[[832,832],"mapped",[768]],[[833,833],"mapped",[769]],[[834,834],"valid"],[[835,835],"mapped",[787]],[[836,836],"mapped",[776,769]],[[837,837],"mapped",[953]],[[838,846],"valid"],[[847,847],"ignored"],[[848,855],"valid"],[[856,860],"valid"],[[861,863],"valid"],[[864,865],"valid"],[[866,866],"valid"],[[867,879],"valid"],[[880,880],"mapped",[881]],[[881,881],"valid"],[[882,882],"mapped",[883]],[[883,883],"valid"],[[884,884],"mapped",[697]],[[885,885],"valid"],[[886,886],"mapped",[887]],[[887,887],"valid"],[[888,889],"disallowed"],[[890,890],"disallowed_STD3_mapped",[32,953]],[[891,893],"valid"],[[894,894],"disallowed_STD3_mapped",[59]],[[895,895],"mapped",[1011]],[[896,899],"disallowed"],[[900,900],"disallowed_STD3_mapped",[32,769]],[[901,901],"disallowed_STD3_mapped",[32,776,769]],[[902,902],"mapped",[940]],[[903,903],"mapped",[183]],[[904,904],"mapped",[941]],[[905,905],"mapped",[942]],[[906,906],"mapped",[943]],[[907,907],"disallowed"],[[908,908],"mapped",[972]],[[909,909],"disallowed"],[[910,910],"mapped",[973]],[[911,911],"mapped",[974]],[[912,912],"valid"],[[913,913],"mapped",[945]],[[914,914],"mapped",[946]],[[915,915],"mapped",[947]],[[916,916],"mapped",[948]],[[917,917],"mapped",[949]],[[918,918],"mapped",[950]],[[919,919],"mapped",[951]],[[920,920],"mapped",[952]],[[921,921],"mapped",[953]],[[922,922],"mapped",[954]],[[923,923],"mapped",[955]],[[924,924],"mapped",[956]],[[925,925],"mapped",[957]],[[926,926],"mapped",[958]],[[927,927],"mapped",[959]],[[928,928],"mapped",[960]],[[929,929],"mapped",[961]],[[930,930],"disallowed"],[[931,931],"mapped",[963]],[[932,932],"mapped",[964]],[[933,933],"mapped",[965]],[[934,934],"mapped",[966]],[[935,935],"mapped",[967]],[[936,936],"mapped",[968]],[[937,937],"mapped",[969]],[[938,938],"mapped",[970]],[[939,939],"mapped",[971]],[[940,961],"valid"],[[962,962],"deviation",[963]],[[963,974],"valid"],[[975,975],"mapped",[983]],[[976,976],"mapped",[946]],[[977,977],"mapped",[952]],[[978,978],"mapped",[965]],[[979,979],"mapped",[973]],[[980,980],"mapped",[971]],[[981,981],"mapped",[966]],[[982,982],"mapped",[960]],[[983,983],"valid"],[[984,984],"mapped",[985]],[[985,985],"valid"],[[986,986],"mapped",[987]],[[987,987],"valid"],[[988,988],"mapped",[989]],[[989,989],"valid"],[[990,990],"mapped",[991]],[[991,991],"valid"],[[992,992],"mapped",[993]],[[993,993],"valid"],[[994,994],"mapped",[995]],[[995,995],"valid"],[[996,996],"mapped",[997]],[[997,997],"valid"],[[998,998],"mapped",[999]],[[999,999],"valid"],[[1000,1000],"mapped",[1001]],[[1001,1001],"valid"],[[1002,1002],"mapped",[1003]],[[1003,1003],"valid"],[[1004,1004],"mapped",[1005]],[[1005,1005],"valid"],[[1006,1006],"mapped",[1007]],[[1007,1007],"valid"],[[1008,1008],"mapped",[954]],[[1009,1009],"mapped",[961]],[[1010,1010],"mapped",[963]],[[1011,1011],"valid"],[[1012,1012],"mapped",[952]],[[1013,1013],"mapped",[949]],[[1014,1014],"valid",[],"NV8"],[[1015,1015],"mapped",[1016]],[[1016,1016],"valid"],[[1017,1017],"mapped",[963]],[[1018,1018],"mapped",[1019]],[[1019,1019],"valid"],[[1020,1020],"valid"],[[1021,1021],"mapped",[891]],[[1022,1022],"mapped",[892]],[[1023,1023],"mapped",[893]],[[1024,1024],"mapped",[1104]],[[1025,1025],"mapped",[1105]],[[1026,1026],"mapped",[1106]],[[1027,1027],"mapped",[1107]],[[1028,1028],"mapped",[1108]],[[1029,1029],"mapped",[1109]],[[1030,1030],"mapped",[1110]],[[1031,1031],"mapped",[1111]],[[1032,1032],"mapped",[1112]],[[1033,1033],"mapped",[1113]],[[1034,1034],"mapped",[1114]],[[1035,1035],"mapped",[1115]],[[1036,1036],"mapped",[1116]],[[1037,1037],"mapped",[1117]],[[1038,1038],"mapped",[1118]],[[1039,1039],"mapped",[1119]],[[1040,1040],"mapped",[1072]],[[1041,1041],"mapped",[1073]],[[1042,1042],"mapped",[1074]],[[1043,1043],"mapped",[1075]],[[1044,1044],"mapped",[1076]],[[1045,1045],"mapped",[1077]],[[1046,1046],"mapped",[1078]],[[1047,1047],"mapped",[1079]],[[1048,1048],"mapped",[1080]],[[1049,1049],"mapped",[1081]],[[1050,1050],"mapped",[1082]],[[1051,1051],"mapped",[1083]],[[1052,1052],"mapped",[1084]],[[1053,1053],"mapped",[1085]],[[1054,1054],"mapped",[1086]],[[1055,1055],"mapped",[1087]],[[1056,1056],"mapped",[1088]],[[1057,1057],"mapped",[1089]],[[1058,1058],"mapped",[1090]],[[1059,1059],"mapped",[1091]],[[1060,1060],"mapped",[1092]],[[1061,1061],"mapped",[1093]],[[1062,1062],"mapped",[1094]],[[1063,1063],"mapped",[1095]],[[1064,1064],"mapped",[1096]],[[1065,1065],"mapped",[1097]],[[1066,1066],"mapped",[1098]],[[1067,1067],"mapped",[1099]],[[1068,1068],"mapped",[1100]],[[1069,1069],"mapped",[1101]],[[1070,1070],"mapped",[1102]],[[1071,1071],"mapped",[1103]],[[1072,1103],"valid"],[[1104,1104],"valid"],[[1105,1116],"valid"],[[1117,1117],"valid"],[[1118,1119],"valid"],[[1120,1120],"mapped",[1121]],[[1121,1121],"valid"],[[1122,1122],"mapped",[1123]],[[1123,1123],"valid"],[[1124,1124],"mapped",[1125]],[[1125,1125],"valid"],[[1126,1126],"mapped",[1127]],[[1127,1127],"valid"],[[1128,1128],"mapped",[1129]],[[1129,1129],"valid"],[[1130,1130],"mapped",[1131]],[[1131,1131],"valid"],[[1132,1132],"mapped",[1133]],[[1133,1133],"valid"],[[1134,1134],"mapped",[1135]],[[1135,1135],"valid"],[[1136,1136],"mapped",[1137]],[[1137,1137],"valid"],[[1138,1138],"mapped",[1139]],[[1139,1139],"valid"],[[1140,1140],"mapped",[1141]],[[1141,1141],"valid"],[[1142,1142],"mapped",[1143]],[[1143,1143],"valid"],[[1144,1144],"mapped",[1145]],[[1145,1145],"valid"],[[1146,1146],"mapped",[1147]],[[1147,1147],"valid"],[[1148,1148],"mapped",[1149]],[[1149,1149],"valid"],[[1150,1150],"mapped",[1151]],[[1151,1151],"valid"],[[1152,1152],"mapped",[1153]],[[1153,1153],"valid"],[[1154,1154],"valid",[],"NV8"],[[1155,1158],"valid"],[[1159,1159],"valid"],[[1160,1161],"valid",[],"NV8"],[[1162,1162],"mapped",[1163]],[[1163,1163],"valid"],[[1164,1164],"mapped",[1165]],[[1165,1165],"valid"],[[1166,1166],"mapped",[1167]],[[1167,1167],"valid"],[[1168,1168],"mapped",[1169]],[[1169,1169],"valid"],[[1170,1170],"mapped",[1171]],[[1171,1171],"valid"],[[1172,1172],"mapped",[1173]],[[1173,1173],"valid"],[[1174,1174],"mapped",[1175]],[[1175,1175],"valid"],[[1176,1176],"mapped",[1177]],[[1177,1177],"valid"],[[1178,1178],"mapped",[1179]],[[1179,1179],"valid"],[[1180,1180],"mapped",[1181]],[[1181,1181],"valid"],[[1182,1182],"mapped",[1183]],[[1183,1183],"valid"],[[1184,1184],"mapped",[1185]],[[1185,1185],"valid"],[[1186,1186],"mapped",[1187]],[[1187,1187],"valid"],[[1188,1188],"mapped",[1189]],[[1189,1189],"valid"],[[1190,1190],"mapped",[1191]],[[1191,1191],"valid"],[[1192,1192],"mapped",[1193]],[[1193,1193],"valid"],[[1194,1194],"mapped",[1195]],[[1195,1195],"valid"],[[1196,1196],"mapped",[1197]],[[1197,1197],"valid"],[[1198,1198],"mapped",[1199]],[[1199,1199],"valid"],[[1200,1200],"mapped",[1201]],[[1201,1201],"valid"],[[1202,1202],"mapped",[1203]],[[1203,1203],"valid"],[[1204,1204],"mapped",[1205]],[[1205,1205],"valid"],[[1206,1206],"mapped",[1207]],[[1207,1207],"valid"],[[1208,1208],"mapped",[1209]],[[1209,1209],"valid"],[[1210,1210],"mapped",[1211]],[[1211,1211],"valid"],[[1212,1212],"mapped",[1213]],[[1213,1213],"valid"],[[1214,1214],"mapped",[1215]],[[1215,1215],"valid"],[[1216,1216],"disallowed"],[[1217,1217],"mapped",[1218]],[[1218,1218],"valid"],[[1219,1219],"mapped",[1220]],[[1220,1220],"valid"],[[1221,1221],"mapped",[1222]],[[1222,1222],"valid"],[[1223,1223],"mapped",[1224]],[[1224,1224],"valid"],[[1225,1225],"mapped",[1226]],[[1226,1226],"valid"],[[1227,1227],"mapped",[1228]],[[1228,1228],"valid"],[[1229,1229],"mapped",[1230]],[[1230,1230],"valid"],[[1231,1231],"valid"],[[1232,1232],"mapped",[1233]],[[1233,1233],"valid"],[[1234,1234],"mapped",[1235]],[[1235,1235],"valid"],[[1236,1236],"mapped",[1237]],[[1237,1237],"valid"],[[1238,1238],"mapped",[1239]],[[1239,1239],"valid"],[[1240,1240],"mapped",[1241]],[[1241,1241],"valid"],[[1242,1242],"mapped",[1243]],[[1243,1243],"valid"],[[1244,1244],"mapped",[1245]],[[1245,1245],"valid"],[[1246,1246],"mapped",[1247]],[[1247,1247],"valid"],[[1248,1248],"mapped",[1249]],[[1249,1249],"valid"],[[1250,1250],"mapped",[1251]],[[1251,1251],"valid"],[[1252,1252],"mapped",[1253]],[[1253,1253],"valid"],[[1254,1254],"mapped",[1255]],[[1255,1255],"valid"],[[1256,1256],"mapped",[1257]],[[1257,1257],"valid"],[[1258,1258],"mapped",[1259]],[[1259,1259],"valid"],[[1260,1260],"mapped",[1261]],[[1261,1261],"valid"],[[1262,1262],"mapped",[1263]],[[1263,1263],"valid"],[[1264,1264],"mapped",[1265]],[[1265,1265],"valid"],[[1266,1266],"mapped",[1267]],[[1267,1267],"valid"],[[1268,1268],"mapped",[1269]],[[1269,1269],"valid"],[[1270,1270],"mapped",[1271]],[[1271,1271],"valid"],[[1272,1272],"mapped",[1273]],[[1273,1273],"valid"],[[1274,1274],"mapped",[1275]],[[1275,1275],"valid"],[[1276,1276],"mapped",[1277]],[[1277,1277],"valid"],[[1278,1278],"mapped",[1279]],[[1279,1279],"valid"],[[1280,1280],"mapped",[1281]],[[1281,1281],"valid"],[[1282,1282],"mapped",[1283]],[[1283,1283],"valid"],[[1284,1284],"mapped",[1285]],[[1285,1285],"valid"],[[1286,1286],"mapped",[1287]],[[1287,1287],"valid"],[[1288,1288],"mapped",[1289]],[[1289,1289],"valid"],[[1290,1290],"mapped",[1291]],[[1291,1291],"valid"],[[1292,1292],"mapped",[1293]],[[1293,1293],"valid"],[[1294,1294],"mapped",[1295]],[[1295,1295],"valid"],[[1296,1296],"mapped",[1297]],[[1297,1297],"valid"],[[1298,1298],"mapped",[1299]],[[1299,1299],"valid"],[[1300,1300],"mapped",[1301]],[[1301,1301],"valid"],[[1302,1302],"mapped",[1303]],[[1303,1303],"valid"],[[1304,1304],"mapped",[1305]],[[1305,1305],"valid"],[[1306,1306],"mapped",[1307]],[[1307,1307],"valid"],[[1308,1308],"mapped",[1309]],[[1309,1309],"valid"],[[1310,1310],"mapped",[1311]],[[1311,1311],"valid"],[[1312,1312],"mapped",[1313]],[[1313,1313],"valid"],[[1314,1314],"mapped",[1315]],[[1315,1315],"valid"],[[1316,1316],"mapped",[1317]],[[1317,1317],"valid"],[[1318,1318],"mapped",[1319]],[[1319,1319],"valid"],[[1320,1320],"mapped",[1321]],[[1321,1321],"valid"],[[1322,1322],"mapped",[1323]],[[1323,1323],"valid"],[[1324,1324],"mapped",[1325]],[[1325,1325],"valid"],[[1326,1326],"mapped",[1327]],[[1327,1327],"valid"],[[1328,1328],"disallowed"],[[1329,1329],"mapped",[1377]],[[1330,1330],"mapped",[1378]],[[1331,1331],"mapped",[1379]],[[1332,1332],"mapped",[1380]],[[1333,1333],"mapped",[1381]],[[1334,1334],"mapped",[1382]],[[1335,1335],"mapped",[1383]],[[1336,1336],"mapped",[1384]],[[1337,1337],"mapped",[1385]],[[1338,1338],"mapped",[1386]],[[1339,1339],"mapped",[1387]],[[1340,1340],"mapped",[1388]],[[1341,1341],"mapped",[1389]],[[1342,1342],"mapped",[1390]],[[1343,1343],"mapped",[1391]],[[1344,1344],"mapped",[1392]],[[1345,1345],"mapped",[1393]],[[1346,1346],"mapped",[1394]],[[1347,1347],"mapped",[1395]],[[1348,1348],"mapped",[1396]],[[1349,1349],"mapped",[1397]],[[1350,1350],"mapped",[1398]],[[1351,1351],"mapped",[1399]],[[1352,1352],"mapped",[1400]],[[1353,1353],"mapped",[1401]],[[1354,1354],"mapped",[1402]],[[1355,1355],"mapped",[1403]],[[1356,1356],"mapped",[1404]],[[1357,1357],"mapped",[1405]],[[1358,1358],"mapped",[1406]],[[1359,1359],"mapped",[1407]],[[1360,1360],"mapped",[1408]],[[1361,1361],"mapped",[1409]],[[1362,1362],"mapped",[1410]],[[1363,1363],"mapped",[1411]],[[1364,1364],"mapped",[1412]],[[1365,1365],"mapped",[1413]],[[1366,1366],"mapped",[1414]],[[1367,1368],"disallowed"],[[1369,1369],"valid"],[[1370,1375],"valid",[],"NV8"],[[1376,1376],"disallowed"],[[1377,1414],"valid"],[[1415,1415],"mapped",[1381,1410]],[[1416,1416],"disallowed"],[[1417,1417],"valid",[],"NV8"],[[1418,1418],"valid",[],"NV8"],[[1419,1420],"disallowed"],[[1421,1422],"valid",[],"NV8"],[[1423,1423],"valid",[],"NV8"],[[1424,1424],"disallowed"],[[1425,1441],"valid"],[[1442,1442],"valid"],[[1443,1455],"valid"],[[1456,1465],"valid"],[[1466,1466],"valid"],[[1467,1469],"valid"],[[1470,1470],"valid",[],"NV8"],[[1471,1471],"valid"],[[1472,1472],"valid",[],"NV8"],[[1473,1474],"valid"],[[1475,1475],"valid",[],"NV8"],[[1476,1476],"valid"],[[1477,1477],"valid"],[[1478,1478],"valid",[],"NV8"],[[1479,1479],"valid"],[[1480,1487],"disallowed"],[[1488,1514],"valid"],[[1515,1519],"disallowed"],[[1520,1524],"valid"],[[1525,1535],"disallowed"],[[1536,1539],"disallowed"],[[1540,1540],"disallowed"],[[1541,1541],"disallowed"],[[1542,1546],"valid",[],"NV8"],[[1547,1547],"valid",[],"NV8"],[[1548,1548],"valid",[],"NV8"],[[1549,1551],"valid",[],"NV8"],[[1552,1557],"valid"],[[1558,1562],"valid"],[[1563,1563],"valid",[],"NV8"],[[1564,1564],"disallowed"],[[1565,1565],"disallowed"],[[1566,1566],"valid",[],"NV8"],[[1567,1567],"valid",[],"NV8"],[[1568,1568],"valid"],[[1569,1594],"valid"],[[1595,1599],"valid"],[[1600,1600],"valid",[],"NV8"],[[1601,1618],"valid"],[[1619,1621],"valid"],[[1622,1624],"valid"],[[1625,1630],"valid"],[[1631,1631],"valid"],[[1632,1641],"valid"],[[1642,1645],"valid",[],"NV8"],[[1646,1647],"valid"],[[1648,1652],"valid"],[[1653,1653],"mapped",[1575,1652]],[[1654,1654],"mapped",[1608,1652]],[[1655,1655],"mapped",[1735,1652]],[[1656,1656],"mapped",[1610,1652]],[[1657,1719],"valid"],[[1720,1721],"valid"],[[1722,1726],"valid"],[[1727,1727],"valid"],[[1728,1742],"valid"],[[1743,1743],"valid"],[[1744,1747],"valid"],[[1748,1748],"valid",[],"NV8"],[[1749,1756],"valid"],[[1757,1757],"disallowed"],[[1758,1758],"valid",[],"NV8"],[[1759,1768],"valid"],[[1769,1769],"valid",[],"NV8"],[[1770,1773],"valid"],[[1774,1775],"valid"],[[1776,1785],"valid"],[[1786,1790],"valid"],[[1791,1791],"valid"],[[1792,1805],"valid",[],"NV8"],[[1806,1806],"disallowed"],[[1807,1807],"disallowed"],[[1808,1836],"valid"],[[1837,1839],"valid"],[[1840,1866],"valid"],[[1867,1868],"disallowed"],[[1869,1871],"valid"],[[1872,1901],"valid"],[[1902,1919],"valid"],[[1920,1968],"valid"],[[1969,1969],"valid"],[[1970,1983],"disallowed"],[[1984,2037],"valid"],[[2038,2042],"valid",[],"NV8"],[[2043,2047],"disallowed"],[[2048,2093],"valid"],[[2094,2095],"disallowed"],[[2096,2110],"valid",[],"NV8"],[[2111,2111],"disallowed"],[[2112,2139],"valid"],[[2140,2141],"disallowed"],[[2142,2142],"valid",[],"NV8"],[[2143,2207],"disallowed"],[[2208,2208],"valid"],[[2209,2209],"valid"],[[2210,2220],"valid"],[[2221,2226],"valid"],[[2227,2228],"valid"],[[2229,2274],"disallowed"],[[2275,2275],"valid"],[[2276,2302],"valid"],[[2303,2303],"valid"],[[2304,2304],"valid"],[[2305,2307],"valid"],[[2308,2308],"valid"],[[2309,2361],"valid"],[[2362,2363],"valid"],[[2364,2381],"valid"],[[2382,2382],"valid"],[[2383,2383],"valid"],[[2384,2388],"valid"],[[2389,2389],"valid"],[[2390,2391],"valid"],[[2392,2392],"mapped",[2325,2364]],[[2393,2393],"mapped",[2326,2364]],[[2394,2394],"mapped",[2327,2364]],[[2395,2395],"mapped",[2332,2364]],[[2396,2396],"mapped",[2337,2364]],[[2397,2397],"mapped",[2338,2364]],[[2398,2398],"mapped",[2347,2364]],[[2399,2399],"mapped",[2351,2364]],[[2400,2403],"valid"],[[2404,2405],"valid",[],"NV8"],[[2406,2415],"valid"],[[2416,2416],"valid",[],"NV8"],[[2417,2418],"valid"],[[2419,2423],"valid"],[[2424,2424],"valid"],[[2425,2426],"valid"],[[2427,2428],"valid"],[[2429,2429],"valid"],[[2430,2431],"valid"],[[2432,2432],"valid"],[[2433,2435],"valid"],[[2436,2436],"disallowed"],[[2437,2444],"valid"],[[2445,2446],"disallowed"],[[2447,2448],"valid"],[[2449,2450],"disallowed"],[[2451,2472],"valid"],[[2473,2473],"disallowed"],[[2474,2480],"valid"],[[2481,2481],"disallowed"],[[2482,2482],"valid"],[[2483,2485],"disallowed"],[[2486,2489],"valid"],[[2490,2491],"disallowed"],[[2492,2492],"valid"],[[2493,2493],"valid"],[[2494,2500],"valid"],[[2501,2502],"disallowed"],[[2503,2504],"valid"],[[2505,2506],"disallowed"],[[2507,2509],"valid"],[[2510,2510],"valid"],[[2511,2518],"disallowed"],[[2519,2519],"valid"],[[2520,2523],"disallowed"],[[2524,2524],"mapped",[2465,2492]],[[2525,2525],"mapped",[2466,2492]],[[2526,2526],"disallowed"],[[2527,2527],"mapped",[2479,2492]],[[2528,2531],"valid"],[[2532,2533],"disallowed"],[[2534,2545],"valid"],[[2546,2554],"valid",[],"NV8"],[[2555,2555],"valid",[],"NV8"],[[2556,2560],"disallowed"],[[2561,2561],"valid"],[[2562,2562],"valid"],[[2563,2563],"valid"],[[2564,2564],"disallowed"],[[2565,2570],"valid"],[[2571,2574],"disallowed"],[[2575,2576],"valid"],[[2577,2578],"disallowed"],[[2579,2600],"valid"],[[2601,2601],"disallowed"],[[2602,2608],"valid"],[[2609,2609],"disallowed"],[[2610,2610],"valid"],[[2611,2611],"mapped",[2610,2620]],[[2612,2612],"disallowed"],[[2613,2613],"valid"],[[2614,2614],"mapped",[2616,2620]],[[2615,2615],"disallowed"],[[2616,2617],"valid"],[[2618,2619],"disallowed"],[[2620,2620],"valid"],[[2621,2621],"disallowed"],[[2622,2626],"valid"],[[2627,2630],"disallowed"],[[2631,2632],"valid"],[[2633,2634],"disallowed"],[[2635,2637],"valid"],[[2638,2640],"disallowed"],[[2641,2641],"valid"],[[2642,2648],"disallowed"],[[2649,2649],"mapped",[2582,2620]],[[2650,2650],"mapped",[2583,2620]],[[2651,2651],"mapped",[2588,2620]],[[2652,2652],"valid"],[[2653,2653],"disallowed"],[[2654,2654],"mapped",[2603,2620]],[[2655,2661],"disallowed"],[[2662,2676],"valid"],[[2677,2677],"valid"],[[2678,2688],"disallowed"],[[2689,2691],"valid"],[[2692,2692],"disallowed"],[[2693,2699],"valid"],[[2700,2700],"valid"],[[2701,2701],"valid"],[[2702,2702],"disallowed"],[[2703,2705],"valid"],[[2706,2706],"disallowed"],[[2707,2728],"valid"],[[2729,2729],"disallowed"],[[2730,2736],"valid"],[[2737,2737],"disallowed"],[[2738,2739],"valid"],[[2740,2740],"disallowed"],[[2741,2745],"valid"],[[2746,2747],"disallowed"],[[2748,2757],"valid"],[[2758,2758],"disallowed"],[[2759,2761],"valid"],[[2762,2762],"disallowed"],[[2763,2765],"valid"],[[2766,2767],"disallowed"],[[2768,2768],"valid"],[[2769,2783],"disallowed"],[[2784,2784],"valid"],[[2785,2787],"valid"],[[2788,2789],"disallowed"],[[2790,2799],"valid"],[[2800,2800],"valid",[],"NV8"],[[2801,2801],"valid",[],"NV8"],[[2802,2808],"disallowed"],[[2809,2809],"valid"],[[2810,2816],"disallowed"],[[2817,2819],"valid"],[[2820,2820],"disallowed"],[[2821,2828],"valid"],[[2829,2830],"disallowed"],[[2831,2832],"valid"],[[2833,2834],"disallowed"],[[2835,2856],"valid"],[[2857,2857],"disallowed"],[[2858,2864],"valid"],[[2865,2865],"disallowed"],[[2866,2867],"valid"],[[2868,2868],"disallowed"],[[2869,2869],"valid"],[[2870,2873],"valid"],[[2874,2875],"disallowed"],[[2876,2883],"valid"],[[2884,2884],"valid"],[[2885,2886],"disallowed"],[[2887,2888],"valid"],[[2889,2890],"disallowed"],[[2891,2893],"valid"],[[2894,2901],"disallowed"],[[2902,2903],"valid"],[[2904,2907],"disallowed"],[[2908,2908],"mapped",[2849,2876]],[[2909,2909],"mapped",[2850,2876]],[[2910,2910],"disallowed"],[[2911,2913],"valid"],[[2914,2915],"valid"],[[2916,2917],"disallowed"],[[2918,2927],"valid"],[[2928,2928],"valid",[],"NV8"],[[2929,2929],"valid"],[[2930,2935],"valid",[],"NV8"],[[2936,2945],"disallowed"],[[2946,2947],"valid"],[[2948,2948],"disallowed"],[[2949,2954],"valid"],[[2955,2957],"disallowed"],[[2958,2960],"valid"],[[2961,2961],"disallowed"],[[2962,2965],"valid"],[[2966,2968],"disallowed"],[[2969,2970],"valid"],[[2971,2971],"disallowed"],[[2972,2972],"valid"],[[2973,2973],"disallowed"],[[2974,2975],"valid"],[[2976,2978],"disallowed"],[[2979,2980],"valid"],[[2981,2983],"disallowed"],[[2984,2986],"valid"],[[2987,2989],"disallowed"],[[2990,2997],"valid"],[[2998,2998],"valid"],[[2999,3001],"valid"],[[3002,3005],"disallowed"],[[3006,3010],"valid"],[[3011,3013],"disallowed"],[[3014,3016],"valid"],[[3017,3017],"disallowed"],[[3018,3021],"valid"],[[3022,3023],"disallowed"],[[3024,3024],"valid"],[[3025,3030],"disallowed"],[[3031,3031],"valid"],[[3032,3045],"disallowed"],[[3046,3046],"valid"],[[3047,3055],"valid"],[[3056,3058],"valid",[],"NV8"],[[3059,3066],"valid",[],"NV8"],[[3067,3071],"disallowed"],[[3072,3072],"valid"],[[3073,3075],"valid"],[[3076,3076],"disallowed"],[[3077,3084],"valid"],[[3085,3085],"disallowed"],[[3086,3088],"valid"],[[3089,3089],"disallowed"],[[3090,3112],"valid"],[[3113,3113],"disallowed"],[[3114,3123],"valid"],[[3124,3124],"valid"],[[3125,3129],"valid"],[[3130,3132],"disallowed"],[[3133,3133],"valid"],[[3134,3140],"valid"],[[3141,3141],"disallowed"],[[3142,3144],"valid"],[[3145,3145],"disallowed"],[[3146,3149],"valid"],[[3150,3156],"disallowed"],[[3157,3158],"valid"],[[3159,3159],"disallowed"],[[3160,3161],"valid"],[[3162,3162],"valid"],[[3163,3167],"disallowed"],[[3168,3169],"valid"],[[3170,3171],"valid"],[[3172,3173],"disallowed"],[[3174,3183],"valid"],[[3184,3191],"disallowed"],[[3192,3199],"valid",[],"NV8"],[[3200,3200],"disallowed"],[[3201,3201],"valid"],[[3202,3203],"valid"],[[3204,3204],"disallowed"],[[3205,3212],"valid"],[[3213,3213],"disallowed"],[[3214,3216],"valid"],[[3217,3217],"disallowed"],[[3218,3240],"valid"],[[3241,3241],"disallowed"],[[3242,3251],"valid"],[[3252,3252],"disallowed"],[[3253,3257],"valid"],[[3258,3259],"disallowed"],[[3260,3261],"valid"],[[3262,3268],"valid"],[[3269,3269],"disallowed"],[[3270,3272],"valid"],[[3273,3273],"disallowed"],[[3274,3277],"valid"],[[3278,3284],"disallowed"],[[3285,3286],"valid"],[[3287,3293],"disallowed"],[[3294,3294],"valid"],[[3295,3295],"disallowed"],[[3296,3297],"valid"],[[3298,3299],"valid"],[[3300,3301],"disallowed"],[[3302,3311],"valid"],[[3312,3312],"disallowed"],[[3313,3314],"valid"],[[3315,3328],"disallowed"],[[3329,3329],"valid"],[[3330,3331],"valid"],[[3332,3332],"disallowed"],[[3333,3340],"valid"],[[3341,3341],"disallowed"],[[3342,3344],"valid"],[[3345,3345],"disallowed"],[[3346,3368],"valid"],[[3369,3369],"valid"],[[3370,3385],"valid"],[[3386,3386],"valid"],[[3387,3388],"disallowed"],[[3389,3389],"valid"],[[3390,3395],"valid"],[[3396,3396],"valid"],[[3397,3397],"disallowed"],[[3398,3400],"valid"],[[3401,3401],"disallowed"],[[3402,3405],"valid"],[[3406,3406],"valid"],[[3407,3414],"disallowed"],[[3415,3415],"valid"],[[3416,3422],"disallowed"],[[3423,3423],"valid"],[[3424,3425],"valid"],[[3426,3427],"valid"],[[3428,3429],"disallowed"],[[3430,3439],"valid"],[[3440,3445],"valid",[],"NV8"],[[3446,3448],"disallowed"],[[3449,3449],"valid",[],"NV8"],[[3450,3455],"valid"],[[3456,3457],"disallowed"],[[3458,3459],"valid"],[[3460,3460],"disallowed"],[[3461,3478],"valid"],[[3479,3481],"disallowed"],[[3482,3505],"valid"],[[3506,3506],"disallowed"],[[3507,3515],"valid"],[[3516,3516],"disallowed"],[[3517,3517],"valid"],[[3518,3519],"disallowed"],[[3520,3526],"valid"],[[3527,3529],"disallowed"],[[3530,3530],"valid"],[[3531,3534],"disallowed"],[[3535,3540],"valid"],[[3541,3541],"disallowed"],[[3542,3542],"valid"],[[3543,3543],"disallowed"],[[3544,3551],"valid"],[[3552,3557],"disallowed"],[[3558,3567],"valid"],[[3568,3569],"disallowed"],[[3570,3571],"valid"],[[3572,3572],"valid",[],"NV8"],[[3573,3584],"disallowed"],[[3585,3634],"valid"],[[3635,3635],"mapped",[3661,3634]],[[3636,3642],"valid"],[[3643,3646],"disallowed"],[[3647,3647],"valid",[],"NV8"],[[3648,3662],"valid"],[[3663,3663],"valid",[],"NV8"],[[3664,3673],"valid"],[[3674,3675],"valid",[],"NV8"],[[3676,3712],"disallowed"],[[3713,3714],"valid"],[[3715,3715],"disallowed"],[[3716,3716],"valid"],[[3717,3718],"disallowed"],[[3719,3720],"valid"],[[3721,3721],"disallowed"],[[3722,3722],"valid"],[[3723,3724],"disallowed"],[[3725,3725],"valid"],[[3726,3731],"disallowed"],[[3732,3735],"valid"],[[3736,3736],"disallowed"],[[3737,3743],"valid"],[[3744,3744],"disallowed"],[[3745,3747],"valid"],[[3748,3748],"disallowed"],[[3749,3749],"valid"],[[3750,3750],"disallowed"],[[3751,3751],"valid"],[[3752,3753],"disallowed"],[[3754,3755],"valid"],[[3756,3756],"disallowed"],[[3757,3762],"valid"],[[3763,3763],"mapped",[3789,3762]],[[3764,3769],"valid"],[[3770,3770],"disallowed"],[[3771,3773],"valid"],[[3774,3775],"disallowed"],[[3776,3780],"valid"],[[3781,3781],"disallowed"],[[3782,3782],"valid"],[[3783,3783],"disallowed"],[[3784,3789],"valid"],[[3790,3791],"disallowed"],[[3792,3801],"valid"],[[3802,3803],"disallowed"],[[3804,3804],"mapped",[3755,3737]],[[3805,3805],"mapped",[3755,3745]],[[3806,3807],"valid"],[[3808,3839],"disallowed"],[[3840,3840],"valid"],[[3841,3850],"valid",[],"NV8"],[[3851,3851],"valid"],[[3852,3852],"mapped",[3851]],[[3853,3863],"valid",[],"NV8"],[[3864,3865],"valid"],[[3866,3871],"valid",[],"NV8"],[[3872,3881],"valid"],[[3882,3892],"valid",[],"NV8"],[[3893,3893],"valid"],[[3894,3894],"valid",[],"NV8"],[[3895,3895],"valid"],[[3896,3896],"valid",[],"NV8"],[[3897,3897],"valid"],[[3898,3901],"valid",[],"NV8"],[[3902,3906],"valid"],[[3907,3907],"mapped",[3906,4023]],[[3908,3911],"valid"],[[3912,3912],"disallowed"],[[3913,3916],"valid"],[[3917,3917],"mapped",[3916,4023]],[[3918,3921],"valid"],[[3922,3922],"mapped",[3921,4023]],[[3923,3926],"valid"],[[3927,3927],"mapped",[3926,4023]],[[3928,3931],"valid"],[[3932,3932],"mapped",[3931,4023]],[[3933,3944],"valid"],[[3945,3945],"mapped",[3904,4021]],[[3946,3946],"valid"],[[3947,3948],"valid"],[[3949,3952],"disallowed"],[[3953,3954],"valid"],[[3955,3955],"mapped",[3953,3954]],[[3956,3956],"valid"],[[3957,3957],"mapped",[3953,3956]],[[3958,3958],"mapped",[4018,3968]],[[3959,3959],"mapped",[4018,3953,3968]],[[3960,3960],"mapped",[4019,3968]],[[3961,3961],"mapped",[4019,3953,3968]],[[3962,3968],"valid"],[[3969,3969],"mapped",[3953,3968]],[[3970,3972],"valid"],[[3973,3973],"valid",[],"NV8"],[[3974,3979],"valid"],[[3980,3983],"valid"],[[3984,3986],"valid"],[[3987,3987],"mapped",[3986,4023]],[[3988,3989],"valid"],[[3990,3990],"valid"],[[3991,3991],"valid"],[[3992,3992],"disallowed"],[[3993,3996],"valid"],[[3997,3997],"mapped",[3996,4023]],[[3998,4001],"valid"],[[4002,4002],"mapped",[4001,4023]],[[4003,4006],"valid"],[[4007,4007],"mapped",[4006,4023]],[[4008,4011],"valid"],[[4012,4012],"mapped",[4011,4023]],[[4013,4013],"valid"],[[4014,4016],"valid"],[[4017,4023],"valid"],[[4024,4024],"valid"],[[4025,4025],"mapped",[3984,4021]],[[4026,4028],"valid"],[[4029,4029],"disallowed"],[[4030,4037],"valid",[],"NV8"],[[4038,4038],"valid"],[[4039,4044],"valid",[],"NV8"],[[4045,4045],"disallowed"],[[4046,4046],"valid",[],"NV8"],[[4047,4047],"valid",[],"NV8"],[[4048,4049],"valid",[],"NV8"],[[4050,4052],"valid",[],"NV8"],[[4053,4056],"valid",[],"NV8"],[[4057,4058],"valid",[],"NV8"],[[4059,4095],"disallowed"],[[4096,4129],"valid"],[[4130,4130],"valid"],[[4131,4135],"valid"],[[4136,4136],"valid"],[[4137,4138],"valid"],[[4139,4139],"valid"],[[4140,4146],"valid"],[[4147,4149],"valid"],[[4150,4153],"valid"],[[4154,4159],"valid"],[[4160,4169],"valid"],[[4170,4175],"valid",[],"NV8"],[[4176,4185],"valid"],[[4186,4249],"valid"],[[4250,4253],"valid"],[[4254,4255],"valid",[],"NV8"],[[4256,4293],"disallowed"],[[4294,4294],"disallowed"],[[4295,4295],"mapped",[11559]],[[4296,4300],"disallowed"],[[4301,4301],"mapped",[11565]],[[4302,4303],"disallowed"],[[4304,4342],"valid"],[[4343,4344],"valid"],[[4345,4346],"valid"],[[4347,4347],"valid",[],"NV8"],[[4348,4348],"mapped",[4316]],[[4349,4351],"valid"],[[4352,4441],"valid",[],"NV8"],[[4442,4446],"valid",[],"NV8"],[[4447,4448],"disallowed"],[[4449,4514],"valid",[],"NV8"],[[4515,4519],"valid",[],"NV8"],[[4520,4601],"valid",[],"NV8"],[[4602,4607],"valid",[],"NV8"],[[4608,4614],"valid"],[[4615,4615],"valid"],[[4616,4678],"valid"],[[4679,4679],"valid"],[[4680,4680],"valid"],[[4681,4681],"disallowed"],[[4682,4685],"valid"],[[4686,4687],"disallowed"],[[4688,4694],"valid"],[[4695,4695],"disallowed"],[[4696,4696],"valid"],[[4697,4697],"disallowed"],[[4698,4701],"valid"],[[4702,4703],"disallowed"],[[4704,4742],"valid"],[[4743,4743],"valid"],[[4744,4744],"valid"],[[4745,4745],"disallowed"],[[4746,4749],"valid"],[[4750,4751],"disallowed"],[[4752,4782],"valid"],[[4783,4783],"valid"],[[4784,4784],"valid"],[[4785,4785],"disallowed"],[[4786,4789],"valid"],[[4790,4791],"disallowed"],[[4792,4798],"valid"],[[4799,4799],"disallowed"],[[4800,4800],"valid"],[[4801,4801],"disallowed"],[[4802,4805],"valid"],[[4806,4807],"disallowed"],[[4808,4814],"valid"],[[4815,4815],"valid"],[[4816,4822],"valid"],[[4823,4823],"disallowed"],[[4824,4846],"valid"],[[4847,4847],"valid"],[[4848,4878],"valid"],[[4879,4879],"valid"],[[4880,4880],"valid"],[[4881,4881],"disallowed"],[[4882,4885],"valid"],[[4886,4887],"disallowed"],[[4888,4894],"valid"],[[4895,4895],"valid"],[[4896,4934],"valid"],[[4935,4935],"valid"],[[4936,4954],"valid"],[[4955,4956],"disallowed"],[[4957,4958],"valid"],[[4959,4959],"valid"],[[4960,4960],"valid",[],"NV8"],[[4961,4988],"valid",[],"NV8"],[[4989,4991],"disallowed"],[[4992,5007],"valid"],[[5008,5017],"valid",[],"NV8"],[[5018,5023],"disallowed"],[[5024,5108],"valid"],[[5109,5109],"valid"],[[5110,5111],"disallowed"],[[5112,5112],"mapped",[5104]],[[5113,5113],"mapped",[5105]],[[5114,5114],"mapped",[5106]],[[5115,5115],"mapped",[5107]],[[5116,5116],"mapped",[5108]],[[5117,5117],"mapped",[5109]],[[5118,5119],"disallowed"],[[5120,5120],"valid",[],"NV8"],[[5121,5740],"valid"],[[5741,5742],"valid",[],"NV8"],[[5743,5750],"valid"],[[5751,5759],"valid"],[[5760,5760],"disallowed"],[[5761,5786],"valid"],[[5787,5788],"valid",[],"NV8"],[[5789,5791],"disallowed"],[[5792,5866],"valid"],[[5867,5872],"valid",[],"NV8"],[[5873,5880],"valid"],[[5881,5887],"disallowed"],[[5888,5900],"valid"],[[5901,5901],"disallowed"],[[5902,5908],"valid"],[[5909,5919],"disallowed"],[[5920,5940],"valid"],[[5941,5942],"valid",[],"NV8"],[[5943,5951],"disallowed"],[[5952,5971],"valid"],[[5972,5983],"disallowed"],[[5984,5996],"valid"],[[5997,5997],"disallowed"],[[5998,6000],"valid"],[[6001,6001],"disallowed"],[[6002,6003],"valid"],[[6004,6015],"disallowed"],[[6016,6067],"valid"],[[6068,6069],"disallowed"],[[6070,6099],"valid"],[[6100,6102],"valid",[],"NV8"],[[6103,6103],"valid"],[[6104,6107],"valid",[],"NV8"],[[6108,6108],"valid"],[[6109,6109],"valid"],[[6110,6111],"disallowed"],[[6112,6121],"valid"],[[6122,6127],"disallowed"],[[6128,6137],"valid",[],"NV8"],[[6138,6143],"disallowed"],[[6144,6149],"valid",[],"NV8"],[[6150,6150],"disallowed"],[[6151,6154],"valid",[],"NV8"],[[6155,6157],"ignored"],[[6158,6158],"disallowed"],[[6159,6159],"disallowed"],[[6160,6169],"valid"],[[6170,6175],"disallowed"],[[6176,6263],"valid"],[[6264,6271],"disallowed"],[[6272,6313],"valid"],[[6314,6314],"valid"],[[6315,6319],"disallowed"],[[6320,6389],"valid"],[[6390,6399],"disallowed"],[[6400,6428],"valid"],[[6429,6430],"valid"],[[6431,6431],"disallowed"],[[6432,6443],"valid"],[[6444,6447],"disallowed"],[[6448,6459],"valid"],[[6460,6463],"disallowed"],[[6464,6464],"valid",[],"NV8"],[[6465,6467],"disallowed"],[[6468,6469],"valid",[],"NV8"],[[6470,6509],"valid"],[[6510,6511],"disallowed"],[[6512,6516],"valid"],[[6517,6527],"disallowed"],[[6528,6569],"valid"],[[6570,6571],"valid"],[[6572,6575],"disallowed"],[[6576,6601],"valid"],[[6602,6607],"disallowed"],[[6608,6617],"valid"],[[6618,6618],"valid",[],"XV8"],[[6619,6621],"disallowed"],[[6622,6623],"valid",[],"NV8"],[[6624,6655],"valid",[],"NV8"],[[6656,6683],"valid"],[[6684,6685],"disallowed"],[[6686,6687],"valid",[],"NV8"],[[6688,6750],"valid"],[[6751,6751],"disallowed"],[[6752,6780],"valid"],[[6781,6782],"disallowed"],[[6783,6793],"valid"],[[6794,6799],"disallowed"],[[6800,6809],"valid"],[[6810,6815],"disallowed"],[[6816,6822],"valid",[],"NV8"],[[6823,6823],"valid"],[[6824,6829],"valid",[],"NV8"],[[6830,6831],"disallowed"],[[6832,6845],"valid"],[[6846,6846],"valid",[],"NV8"],[[6847,6911],"disallowed"],[[6912,6987],"valid"],[[6988,6991],"disallowed"],[[6992,7001],"valid"],[[7002,7018],"valid",[],"NV8"],[[7019,7027],"valid"],[[7028,7036],"valid",[],"NV8"],[[7037,7039],"disallowed"],[[7040,7082],"valid"],[[7083,7085],"valid"],[[7086,7097],"valid"],[[7098,7103],"valid"],[[7104,7155],"valid"],[[7156,7163],"disallowed"],[[7164,7167],"valid",[],"NV8"],[[7168,7223],"valid"],[[7224,7226],"disallowed"],[[7227,7231],"valid",[],"NV8"],[[7232,7241],"valid"],[[7242,7244],"disallowed"],[[7245,7293],"valid"],[[7294,7295],"valid",[],"NV8"],[[7296,7359],"disallowed"],[[7360,7367],"valid",[],"NV8"],[[7368,7375],"disallowed"],[[7376,7378],"valid"],[[7379,7379],"valid",[],"NV8"],[[7380,7410],"valid"],[[7411,7414],"valid"],[[7415,7415],"disallowed"],[[7416,7417],"valid"],[[7418,7423],"disallowed"],[[7424,7467],"valid"],[[7468,7468],"mapped",[97]],[[7469,7469],"mapped",[230]],[[7470,7470],"mapped",[98]],[[7471,7471],"valid"],[[7472,7472],"mapped",[100]],[[7473,7473],"mapped",[101]],[[7474,7474],"mapped",[477]],[[7475,7475],"mapped",[103]],[[7476,7476],"mapped",[104]],[[7477,7477],"mapped",[105]],[[7478,7478],"mapped",[106]],[[7479,7479],"mapped",[107]],[[7480,7480],"mapped",[108]],[[7481,7481],"mapped",[109]],[[7482,7482],"mapped",[110]],[[7483,7483],"valid"],[[7484,7484],"mapped",[111]],[[7485,7485],"mapped",[547]],[[7486,7486],"mapped",[112]],[[7487,7487],"mapped",[114]],[[7488,7488],"mapped",[116]],[[7489,7489],"mapped",[117]],[[7490,7490],"mapped",[119]],[[7491,7491],"mapped",[97]],[[7492,7492],"mapped",[592]],[[7493,7493],"mapped",[593]],[[7494,7494],"mapped",[7426]],[[7495,7495],"mapped",[98]],[[7496,7496],"mapped",[100]],[[7497,7497],"mapped",[101]],[[7498,7498],"mapped",[601]],[[7499,7499],"mapped",[603]],[[7500,7500],"mapped",[604]],[[7501,7501],"mapped",[103]],[[7502,7502],"valid"],[[7503,7503],"mapped",[107]],[[7504,7504],"mapped",[109]],[[7505,7505],"mapped",[331]],[[7506,7506],"mapped",[111]],[[7507,7507],"mapped",[596]],[[7508,7508],"mapped",[7446]],[[7509,7509],"mapped",[7447]],[[7510,7510],"mapped",[112]],[[7511,7511],"mapped",[116]],[[7512,7512],"mapped",[117]],[[7513,7513],"mapped",[7453]],[[7514,7514],"mapped",[623]],[[7515,7515],"mapped",[118]],[[7516,7516],"mapped",[7461]],[[7517,7517],"mapped",[946]],[[7518,7518],"mapped",[947]],[[7519,7519],"mapped",[948]],[[7520,7520],"mapped",[966]],[[7521,7521],"mapped",[967]],[[7522,7522],"mapped",[105]],[[7523,7523],"mapped",[114]],[[7524,7524],"mapped",[117]],[[7525,7525],"mapped",[118]],[[7526,7526],"mapped",[946]],[[7527,7527],"mapped",[947]],[[7528,7528],"mapped",[961]],[[7529,7529],"mapped",[966]],[[7530,7530],"mapped",[967]],[[7531,7531],"valid"],[[7532,7543],"valid"],[[7544,7544],"mapped",[1085]],[[7545,7578],"valid"],[[7579,7579],"mapped",[594]],[[7580,7580],"mapped",[99]],[[7581,7581],"mapped",[597]],[[7582,7582],"mapped",[240]],[[7583,7583],"mapped",[604]],[[7584,7584],"mapped",[102]],[[7585,7585],"mapped",[607]],[[7586,7586],"mapped",[609]],[[7587,7587],"mapped",[613]],[[7588,7588],"mapped",[616]],[[7589,7589],"mapped",[617]],[[7590,7590],"mapped",[618]],[[7591,7591],"mapped",[7547]],[[7592,7592],"mapped",[669]],[[7593,7593],"mapped",[621]],[[7594,7594],"mapped",[7557]],[[7595,7595],"mapped",[671]],[[7596,7596],"mapped",[625]],[[7597,7597],"mapped",[624]],[[7598,7598],"mapped",[626]],[[7599,7599],"mapped",[627]],[[7600,7600],"mapped",[628]],[[7601,7601],"mapped",[629]],[[7602,7602],"mapped",[632]],[[7603,7603],"mapped",[642]],[[7604,7604],"mapped",[643]],[[7605,7605],"mapped",[427]],[[7606,7606],"mapped",[649]],[[7607,7607],"mapped",[650]],[[7608,7608],"mapped",[7452]],[[7609,7609],"mapped",[651]],[[7610,7610],"mapped",[652]],[[7611,7611],"mapped",[122]],[[7612,7612],"mapped",[656]],[[7613,7613],"mapped",[657]],[[7614,7614],"mapped",[658]],[[7615,7615],"mapped",[952]],[[7616,7619],"valid"],[[7620,7626],"valid"],[[7627,7654],"valid"],[[7655,7669],"valid"],[[7670,7675],"disallowed"],[[7676,7676],"valid"],[[7677,7677],"valid"],[[7678,7679],"valid"],[[7680,7680],"mapped",[7681]],[[7681,7681],"valid"],[[7682,7682],"mapped",[7683]],[[7683,7683],"valid"],[[7684,7684],"mapped",[7685]],[[7685,7685],"valid"],[[7686,7686],"mapped",[7687]],[[7687,7687],"valid"],[[7688,7688],"mapped",[7689]],[[7689,7689],"valid"],[[7690,7690],"mapped",[7691]],[[7691,7691],"valid"],[[7692,7692],"mapped",[7693]],[[7693,7693],"valid"],[[7694,7694],"mapped",[7695]],[[7695,7695],"valid"],[[7696,7696],"mapped",[7697]],[[7697,7697],"valid"],[[7698,7698],"mapped",[7699]],[[7699,7699],"valid"],[[7700,7700],"mapped",[7701]],[[7701,7701],"valid"],[[7702,7702],"mapped",[7703]],[[7703,7703],"valid"],[[7704,7704],"mapped",[7705]],[[7705,7705],"valid"],[[7706,7706],"mapped",[7707]],[[7707,7707],"valid"],[[7708,7708],"mapped",[7709]],[[7709,7709],"valid"],[[7710,7710],"mapped",[7711]],[[7711,7711],"valid"],[[7712,7712],"mapped",[7713]],[[7713,7713],"valid"],[[7714,7714],"mapped",[7715]],[[7715,7715],"valid"],[[7716,7716],"mapped",[7717]],[[7717,7717],"valid"],[[7718,7718],"mapped",[7719]],[[7719,7719],"valid"],[[7720,7720],"mapped",[7721]],[[7721,7721],"valid"],[[7722,7722],"mapped",[7723]],[[7723,7723],"valid"],[[7724,7724],"mapped",[7725]],[[7725,7725],"valid"],[[7726,7726],"mapped",[7727]],[[7727,7727],"valid"],[[7728,7728],"mapped",[7729]],[[7729,7729],"valid"],[[7730,7730],"mapped",[7731]],[[7731,7731],"valid"],[[7732,7732],"mapped",[7733]],[[7733,7733],"valid"],[[7734,7734],"mapped",[7735]],[[7735,7735],"valid"],[[7736,7736],"mapped",[7737]],[[7737,7737],"valid"],[[7738,7738],"mapped",[7739]],[[7739,7739],"valid"],[[7740,7740],"mapped",[7741]],[[7741,7741],"valid"],[[7742,7742],"mapped",[7743]],[[7743,7743],"valid"],[[7744,7744],"mapped",[7745]],[[7745,7745],"valid"],[[7746,7746],"mapped",[7747]],[[7747,7747],"valid"],[[7748,7748],"mapped",[7749]],[[7749,7749],"valid"],[[7750,7750],"mapped",[7751]],[[7751,7751],"valid"],[[7752,7752],"mapped",[7753]],[[7753,7753],"valid"],[[7754,7754],"mapped",[7755]],[[7755,7755],"valid"],[[7756,7756],"mapped",[7757]],[[7757,7757],"valid"],[[7758,7758],"mapped",[7759]],[[7759,7759],"valid"],[[7760,7760],"mapped",[7761]],[[7761,7761],"valid"],[[7762,7762],"mapped",[7763]],[[7763,7763],"valid"],[[7764,7764],"mapped",[7765]],[[7765,7765],"valid"],[[7766,7766],"mapped",[7767]],[[7767,7767],"valid"],[[7768,7768],"mapped",[7769]],[[7769,7769],"valid"],[[7770,7770],"mapped",[7771]],[[7771,7771],"valid"],[[7772,7772],"mapped",[7773]],[[7773,7773],"valid"],[[7774,7774],"mapped",[7775]],[[7775,7775],"valid"],[[7776,7776],"mapped",[7777]],[[7777,7777],"valid"],[[7778,7778],"mapped",[7779]],[[7779,7779],"valid"],[[7780,7780],"mapped",[7781]],[[7781,7781],"valid"],[[7782,7782],"mapped",[7783]],[[7783,7783],"valid"],[[7784,7784],"mapped",[7785]],[[7785,7785],"valid"],[[7786,7786],"mapped",[7787]],[[7787,7787],"valid"],[[7788,7788],"mapped",[7789]],[[7789,7789],"valid"],[[7790,7790],"mapped",[7791]],[[7791,7791],"valid"],[[7792,7792],"mapped",[7793]],[[7793,7793],"valid"],[[7794,7794],"mapped",[7795]],[[7795,7795],"valid"],[[7796,7796],"mapped",[7797]],[[7797,7797],"valid"],[[7798,7798],"mapped",[7799]],[[7799,7799],"valid"],[[7800,7800],"mapped",[7801]],[[7801,7801],"valid"],[[7802,7802],"mapped",[7803]],[[7803,7803],"valid"],[[7804,7804],"mapped",[7805]],[[7805,7805],"valid"],[[7806,7806],"mapped",[7807]],[[7807,7807],"valid"],[[7808,7808],"mapped",[7809]],[[7809,7809],"valid"],[[7810,7810],"mapped",[7811]],[[7811,7811],"valid"],[[7812,7812],"mapped",[7813]],[[7813,7813],"valid"],[[7814,7814],"mapped",[7815]],[[7815,7815],"valid"],[[7816,7816],"mapped",[7817]],[[7817,7817],"valid"],[[7818,7818],"mapped",[7819]],[[7819,7819],"valid"],[[7820,7820],"mapped",[7821]],[[7821,7821],"valid"],[[7822,7822],"mapped",[7823]],[[7823,7823],"valid"],[[7824,7824],"mapped",[7825]],[[7825,7825],"valid"],[[7826,7826],"mapped",[7827]],[[7827,7827],"valid"],[[7828,7828],"mapped",[7829]],[[7829,7833],"valid"],[[7834,7834],"mapped",[97,702]],[[7835,7835],"mapped",[7777]],[[7836,7837],"valid"],[[7838,7838],"mapped",[115,115]],[[7839,7839],"valid"],[[7840,7840],"mapped",[7841]],[[7841,7841],"valid"],[[7842,7842],"mapped",[7843]],[[7843,7843],"valid"],[[7844,7844],"mapped",[7845]],[[7845,7845],"valid"],[[7846,7846],"mapped",[7847]],[[7847,7847],"valid"],[[7848,7848],"mapped",[7849]],[[7849,7849],"valid"],[[7850,7850],"mapped",[7851]],[[7851,7851],"valid"],[[7852,7852],"mapped",[7853]],[[7853,7853],"valid"],[[7854,7854],"mapped",[7855]],[[7855,7855],"valid"],[[7856,7856],"mapped",[7857]],[[7857,7857],"valid"],[[7858,7858],"mapped",[7859]],[[7859,7859],"valid"],[[7860,7860],"mapped",[7861]],[[7861,7861],"valid"],[[7862,7862],"mapped",[7863]],[[7863,7863],"valid"],[[7864,7864],"mapped",[7865]],[[7865,7865],"valid"],[[7866,7866],"mapped",[7867]],[[7867,7867],"valid"],[[7868,7868],"mapped",[7869]],[[7869,7869],"valid"],[[7870,7870],"mapped",[7871]],[[7871,7871],"valid"],[[7872,7872],"mapped",[7873]],[[7873,7873],"valid"],[[7874,7874],"mapped",[7875]],[[7875,7875],"valid"],[[7876,7876],"mapped",[7877]],[[7877,7877],"valid"],[[7878,7878],"mapped",[7879]],[[7879,7879],"valid"],[[7880,7880],"mapped",[7881]],[[7881,7881],"valid"],[[7882,7882],"mapped",[7883]],[[7883,7883],"valid"],[[7884,7884],"mapped",[7885]],[[7885,7885],"valid"],[[7886,7886],"mapped",[7887]],[[7887,7887],"valid"],[[7888,7888],"mapped",[7889]],[[7889,7889],"valid"],[[7890,7890],"mapped",[7891]],[[7891,7891],"valid"],[[7892,7892],"mapped",[7893]],[[7893,7893],"valid"],[[7894,7894],"mapped",[7895]],[[7895,7895],"valid"],[[7896,7896],"mapped",[7897]],[[7897,7897],"valid"],[[7898,7898],"mapped",[7899]],[[7899,7899],"valid"],[[7900,7900],"mapped",[7901]],[[7901,7901],"valid"],[[7902,7902],"mapped",[7903]],[[7903,7903],"valid"],[[7904,7904],"mapped",[7905]],[[7905,7905],"valid"],[[7906,7906],"mapped",[7907]],[[7907,7907],"valid"],[[7908,7908],"mapped",[7909]],[[7909,7909],"valid"],[[7910,7910],"mapped",[7911]],[[7911,7911],"valid"],[[7912,7912],"mapped",[7913]],[[7913,7913],"valid"],[[7914,7914],"mapped",[7915]],[[7915,7915],"valid"],[[7916,7916],"mapped",[7917]],[[7917,7917],"valid"],[[7918,7918],"mapped",[7919]],[[7919,7919],"valid"],[[7920,7920],"mapped",[7921]],[[7921,7921],"valid"],[[7922,7922],"mapped",[7923]],[[7923,7923],"valid"],[[7924,7924],"mapped",[7925]],[[7925,7925],"valid"],[[7926,7926],"mapped",[7927]],[[7927,7927],"valid"],[[7928,7928],"mapped",[7929]],[[7929,7929],"valid"],[[7930,7930],"mapped",[7931]],[[7931,7931],"valid"],[[7932,7932],"mapped",[7933]],[[7933,7933],"valid"],[[7934,7934],"mapped",[7935]],[[7935,7935],"valid"],[[7936,7943],"valid"],[[7944,7944],"mapped",[7936]],[[7945,7945],"mapped",[7937]],[[7946,7946],"mapped",[7938]],[[7947,7947],"mapped",[7939]],[[7948,7948],"mapped",[7940]],[[7949,7949],"mapped",[7941]],[[7950,7950],"mapped",[7942]],[[7951,7951],"mapped",[7943]],[[7952,7957],"valid"],[[7958,7959],"disallowed"],[[7960,7960],"mapped",[7952]],[[7961,7961],"mapped",[7953]],[[7962,7962],"mapped",[7954]],[[7963,7963],"mapped",[7955]],[[7964,7964],"mapped",[7956]],[[7965,7965],"mapped",[7957]],[[7966,7967],"disallowed"],[[7968,7975],"valid"],[[7976,7976],"mapped",[7968]],[[7977,7977],"mapped",[7969]],[[7978,7978],"mapped",[7970]],[[7979,7979],"mapped",[7971]],[[7980,7980],"mapped",[7972]],[[7981,7981],"mapped",[7973]],[[7982,7982],"mapped",[7974]],[[7983,7983],"mapped",[7975]],[[7984,7991],"valid"],[[7992,7992],"mapped",[7984]],[[7993,7993],"mapped",[7985]],[[7994,7994],"mapped",[7986]],[[7995,7995],"mapped",[7987]],[[7996,7996],"mapped",[7988]],[[7997,7997],"mapped",[7989]],[[7998,7998],"mapped",[7990]],[[7999,7999],"mapped",[7991]],[[8000,8005],"valid"],[[8006,8007],"disallowed"],[[8008,8008],"mapped",[8000]],[[8009,8009],"mapped",[8001]],[[8010,8010],"mapped",[8002]],[[8011,8011],"mapped",[8003]],[[8012,8012],"mapped",[8004]],[[8013,8013],"mapped",[8005]],[[8014,8015],"disallowed"],[[8016,8023],"valid"],[[8024,8024],"disallowed"],[[8025,8025],"mapped",[8017]],[[8026,8026],"disallowed"],[[8027,8027],"mapped",[8019]],[[8028,8028],"disallowed"],[[8029,8029],"mapped",[8021]],[[8030,8030],"disallowed"],[[8031,8031],"mapped",[8023]],[[8032,8039],"valid"],[[8040,8040],"mapped",[8032]],[[8041,8041],"mapped",[8033]],[[8042,8042],"mapped",[8034]],[[8043,8043],"mapped",[8035]],[[8044,8044],"mapped",[8036]],[[8045,8045],"mapped",[8037]],[[8046,8046],"mapped",[8038]],[[8047,8047],"mapped",[8039]],[[8048,8048],"valid"],[[8049,8049],"mapped",[940]],[[8050,8050],"valid"],[[8051,8051],"mapped",[941]],[[8052,8052],"valid"],[[8053,8053],"mapped",[942]],[[8054,8054],"valid"],[[8055,8055],"mapped",[943]],[[8056,8056],"valid"],[[8057,8057],"mapped",[972]],[[8058,8058],"valid"],[[8059,8059],"mapped",[973]],[[8060,8060],"valid"],[[8061,8061],"mapped",[974]],[[8062,8063],"disallowed"],[[8064,8064],"mapped",[7936,953]],[[8065,8065],"mapped",[7937,953]],[[8066,8066],"mapped",[7938,953]],[[8067,8067],"mapped",[7939,953]],[[8068,8068],"mapped",[7940,953]],[[8069,8069],"mapped",[7941,953]],[[8070,8070],"mapped",[7942,953]],[[8071,8071],"mapped",[7943,953]],[[8072,8072],"mapped",[7936,953]],[[8073,8073],"mapped",[7937,953]],[[8074,8074],"mapped",[7938,953]],[[8075,8075],"mapped",[7939,953]],[[8076,8076],"mapped",[7940,953]],[[8077,8077],"mapped",[7941,953]],[[8078,8078],"mapped",[7942,953]],[[8079,8079],"mapped",[7943,953]],[[8080,8080],"mapped",[7968,953]],[[8081,8081],"mapped",[7969,953]],[[8082,8082],"mapped",[7970,953]],[[8083,8083],"mapped",[7971,953]],[[8084,8084],"mapped",[7972,953]],[[8085,8085],"mapped",[7973,953]],[[8086,8086],"mapped",[7974,953]],[[8087,8087],"mapped",[7975,953]],[[8088,8088],"mapped",[7968,953]],[[8089,8089],"mapped",[7969,953]],[[8090,8090],"mapped",[7970,953]],[[8091,8091],"mapped",[7971,953]],[[8092,8092],"mapped",[7972,953]],[[8093,8093],"mapped",[7973,953]],[[8094,8094],"mapped",[7974,953]],[[8095,8095],"mapped",[7975,953]],[[8096,8096],"mapped",[8032,953]],[[8097,8097],"mapped",[8033,953]],[[8098,8098],"mapped",[8034,953]],[[8099,8099],"mapped",[8035,953]],[[8100,8100],"mapped",[8036,953]],[[8101,8101],"mapped",[8037,953]],[[8102,8102],"mapped",[8038,953]],[[8103,8103],"mapped",[8039,953]],[[8104,8104],"mapped",[8032,953]],[[8105,8105],"mapped",[8033,953]],[[8106,8106],"mapped",[8034,953]],[[8107,8107],"mapped",[8035,953]],[[8108,8108],"mapped",[8036,953]],[[8109,8109],"mapped",[8037,953]],[[8110,8110],"mapped",[8038,953]],[[8111,8111],"mapped",[8039,953]],[[8112,8113],"valid"],[[8114,8114],"mapped",[8048,953]],[[8115,8115],"mapped",[945,953]],[[8116,8116],"mapped",[940,953]],[[8117,8117],"disallowed"],[[8118,8118],"valid"],[[8119,8119],"mapped",[8118,953]],[[8120,8120],"mapped",[8112]],[[8121,8121],"mapped",[8113]],[[8122,8122],"mapped",[8048]],[[8123,8123],"mapped",[940]],[[8124,8124],"mapped",[945,953]],[[8125,8125],"disallowed_STD3_mapped",[32,787]],[[8126,8126],"mapped",[953]],[[8127,8127],"disallowed_STD3_mapped",[32,787]],[[8128,8128],"disallowed_STD3_mapped",[32,834]],[[8129,8129],"disallowed_STD3_mapped",[32,776,834]],[[8130,8130],"mapped",[8052,953]],[[8131,8131],"mapped",[951,953]],[[8132,8132],"mapped",[942,953]],[[8133,8133],"disallowed"],[[8134,8134],"valid"],[[8135,8135],"mapped",[8134,953]],[[8136,8136],"mapped",[8050]],[[8137,8137],"mapped",[941]],[[8138,8138],"mapped",[8052]],[[8139,8139],"mapped",[942]],[[8140,8140],"mapped",[951,953]],[[8141,8141],"disallowed_STD3_mapped",[32,787,768]],[[8142,8142],"disallowed_STD3_mapped",[32,787,769]],[[8143,8143],"disallowed_STD3_mapped",[32,787,834]],[[8144,8146],"valid"],[[8147,8147],"mapped",[912]],[[8148,8149],"disallowed"],[[8150,8151],"valid"],[[8152,8152],"mapped",[8144]],[[8153,8153],"mapped",[8145]],[[8154,8154],"mapped",[8054]],[[8155,8155],"mapped",[943]],[[8156,8156],"disallowed"],[[8157,8157],"disallowed_STD3_mapped",[32,788,768]],[[8158,8158],"disallowed_STD3_mapped",[32,788,769]],[[8159,8159],"disallowed_STD3_mapped",[32,788,834]],[[8160,8162],"valid"],[[8163,8163],"mapped",[944]],[[8164,8167],"valid"],[[8168,8168],"mapped",[8160]],[[8169,8169],"mapped",[8161]],[[8170,8170],"mapped",[8058]],[[8171,8171],"mapped",[973]],[[8172,8172],"mapped",[8165]],[[8173,8173],"disallowed_STD3_mapped",[32,776,768]],[[8174,8174],"disallowed_STD3_mapped",[32,776,769]],[[8175,8175],"disallowed_STD3_mapped",[96]],[[8176,8177],"disallowed"],[[8178,8178],"mapped",[8060,953]],[[8179,8179],"mapped",[969,953]],[[8180,8180],"mapped",[974,953]],[[8181,8181],"disallowed"],[[8182,8182],"valid"],[[8183,8183],"mapped",[8182,953]],[[8184,8184],"mapped",[8056]],[[8185,8185],"mapped",[972]],[[8186,8186],"mapped",[8060]],[[8187,8187],"mapped",[974]],[[8188,8188],"mapped",[969,953]],[[8189,8189],"disallowed_STD3_mapped",[32,769]],[[8190,8190],"disallowed_STD3_mapped",[32,788]],[[8191,8191],"disallowed"],[[8192,8202],"disallowed_STD3_mapped",[32]],[[8203,8203],"ignored"],[[8204,8205],"deviation",[]],[[8206,8207],"disallowed"],[[8208,8208],"valid",[],"NV8"],[[8209,8209],"mapped",[8208]],[[8210,8214],"valid",[],"NV8"],[[8215,8215],"disallowed_STD3_mapped",[32,819]],[[8216,8227],"valid",[],"NV8"],[[8228,8230],"disallowed"],[[8231,8231],"valid",[],"NV8"],[[8232,8238],"disallowed"],[[8239,8239],"disallowed_STD3_mapped",[32]],[[8240,8242],"valid",[],"NV8"],[[8243,8243],"mapped",[8242,8242]],[[8244,8244],"mapped",[8242,8242,8242]],[[8245,8245],"valid",[],"NV8"],[[8246,8246],"mapped",[8245,8245]],[[8247,8247],"mapped",[8245,8245,8245]],[[8248,8251],"valid",[],"NV8"],[[8252,8252],"disallowed_STD3_mapped",[33,33]],[[8253,8253],"valid",[],"NV8"],[[8254,8254],"disallowed_STD3_mapped",[32,773]],[[8255,8262],"valid",[],"NV8"],[[8263,8263],"disallowed_STD3_mapped",[63,63]],[[8264,8264],"disallowed_STD3_mapped",[63,33]],[[8265,8265],"disallowed_STD3_mapped",[33,63]],[[8266,8269],"valid",[],"NV8"],[[8270,8274],"valid",[],"NV8"],[[8275,8276],"valid",[],"NV8"],[[8277,8278],"valid",[],"NV8"],[[8279,8279],"mapped",[8242,8242,8242,8242]],[[8280,8286],"valid",[],"NV8"],[[8287,8287],"disallowed_STD3_mapped",[32]],[[8288,8288],"ignored"],[[8289,8291],"disallowed"],[[8292,8292],"ignored"],[[8293,8293],"disallowed"],[[8294,8297],"disallowed"],[[8298,8303],"disallowed"],[[8304,8304],"mapped",[48]],[[8305,8305],"mapped",[105]],[[8306,8307],"disallowed"],[[8308,8308],"mapped",[52]],[[8309,8309],"mapped",[53]],[[8310,8310],"mapped",[54]],[[8311,8311],"mapped",[55]],[[8312,8312],"mapped",[56]],[[8313,8313],"mapped",[57]],[[8314,8314],"disallowed_STD3_mapped",[43]],[[8315,8315],"mapped",[8722]],[[8316,8316],"disallowed_STD3_mapped",[61]],[[8317,8317],"disallowed_STD3_mapped",[40]],[[8318,8318],"disallowed_STD3_mapped",[41]],[[8319,8319],"mapped",[110]],[[8320,8320],"mapped",[48]],[[8321,8321],"mapped",[49]],[[8322,8322],"mapped",[50]],[[8323,8323],"mapped",[51]],[[8324,8324],"mapped",[52]],[[8325,8325],"mapped",[53]],[[8326,8326],"mapped",[54]],[[8327,8327],"mapped",[55]],[[8328,8328],"mapped",[56]],[[8329,8329],"mapped",[57]],[[8330,8330],"disallowed_STD3_mapped",[43]],[[8331,8331],"mapped",[8722]],[[8332,8332],"disallowed_STD3_mapped",[61]],[[8333,8333],"disallowed_STD3_mapped",[40]],[[8334,8334],"disallowed_STD3_mapped",[41]],[[8335,8335],"disallowed"],[[8336,8336],"mapped",[97]],[[8337,8337],"mapped",[101]],[[8338,8338],"mapped",[111]],[[8339,8339],"mapped",[120]],[[8340,8340],"mapped",[601]],[[8341,8341],"mapped",[104]],[[8342,8342],"mapped",[107]],[[8343,8343],"mapped",[108]],[[8344,8344],"mapped",[109]],[[8345,8345],"mapped",[110]],[[8346,8346],"mapped",[112]],[[8347,8347],"mapped",[115]],[[8348,8348],"mapped",[116]],[[8349,8351],"disallowed"],[[8352,8359],"valid",[],"NV8"],[[8360,8360],"mapped",[114,115]],[[8361,8362],"valid",[],"NV8"],[[8363,8363],"valid",[],"NV8"],[[8364,8364],"valid",[],"NV8"],[[8365,8367],"valid",[],"NV8"],[[8368,8369],"valid",[],"NV8"],[[8370,8373],"valid",[],"NV8"],[[8374,8376],"valid",[],"NV8"],[[8377,8377],"valid",[],"NV8"],[[8378,8378],"valid",[],"NV8"],[[8379,8381],"valid",[],"NV8"],[[8382,8382],"valid",[],"NV8"],[[8383,8399],"disallowed"],[[8400,8417],"valid",[],"NV8"],[[8418,8419],"valid",[],"NV8"],[[8420,8426],"valid",[],"NV8"],[[8427,8427],"valid",[],"NV8"],[[8428,8431],"valid",[],"NV8"],[[8432,8432],"valid",[],"NV8"],[[8433,8447],"disallowed"],[[8448,8448],"disallowed_STD3_mapped",[97,47,99]],[[8449,8449],"disallowed_STD3_mapped",[97,47,115]],[[8450,8450],"mapped",[99]],[[8451,8451],"mapped",[176,99]],[[8452,8452],"valid",[],"NV8"],[[8453,8453],"disallowed_STD3_mapped",[99,47,111]],[[8454,8454],"disallowed_STD3_mapped",[99,47,117]],[[8455,8455],"mapped",[603]],[[8456,8456],"valid",[],"NV8"],[[8457,8457],"mapped",[176,102]],[[8458,8458],"mapped",[103]],[[8459,8462],"mapped",[104]],[[8463,8463],"mapped",[295]],[[8464,8465],"mapped",[105]],[[8466,8467],"mapped",[108]],[[8468,8468],"valid",[],"NV8"],[[8469,8469],"mapped",[110]],[[8470,8470],"mapped",[110,111]],[[8471,8472],"valid",[],"NV8"],[[8473,8473],"mapped",[112]],[[8474,8474],"mapped",[113]],[[8475,8477],"mapped",[114]],[[8478,8479],"valid",[],"NV8"],[[8480,8480],"mapped",[115,109]],[[8481,8481],"mapped",[116,101,108]],[[8482,8482],"mapped",[116,109]],[[8483,8483],"valid",[],"NV8"],[[8484,8484],"mapped",[122]],[[8485,8485],"valid",[],"NV8"],[[8486,8486],"mapped",[969]],[[8487,8487],"valid",[],"NV8"],[[8488,8488],"mapped",[122]],[[8489,8489],"valid",[],"NV8"],[[8490,8490],"mapped",[107]],[[8491,8491],"mapped",[229]],[[8492,8492],"mapped",[98]],[[8493,8493],"mapped",[99]],[[8494,8494],"valid",[],"NV8"],[[8495,8496],"mapped",[101]],[[8497,8497],"mapped",[102]],[[8498,8498],"disallowed"],[[8499,8499],"mapped",[109]],[[8500,8500],"mapped",[111]],[[8501,8501],"mapped",[1488]],[[8502,8502],"mapped",[1489]],[[8503,8503],"mapped",[1490]],[[8504,8504],"mapped",[1491]],[[8505,8505],"mapped",[105]],[[8506,8506],"valid",[],"NV8"],[[8507,8507],"mapped",[102,97,120]],[[8508,8508],"mapped",[960]],[[8509,8510],"mapped",[947]],[[8511,8511],"mapped",[960]],[[8512,8512],"mapped",[8721]],[[8513,8516],"valid",[],"NV8"],[[8517,8518],"mapped",[100]],[[8519,8519],"mapped",[101]],[[8520,8520],"mapped",[105]],[[8521,8521],"mapped",[106]],[[8522,8523],"valid",[],"NV8"],[[8524,8524],"valid",[],"NV8"],[[8525,8525],"valid",[],"NV8"],[[8526,8526],"valid"],[[8527,8527],"valid",[],"NV8"],[[8528,8528],"mapped",[49,8260,55]],[[8529,8529],"mapped",[49,8260,57]],[[8530,8530],"mapped",[49,8260,49,48]],[[8531,8531],"mapped",[49,8260,51]],[[8532,8532],"mapped",[50,8260,51]],[[8533,8533],"mapped",[49,8260,53]],[[8534,8534],"mapped",[50,8260,53]],[[8535,8535],"mapped",[51,8260,53]],[[8536,8536],"mapped",[52,8260,53]],[[8537,8537],"mapped",[49,8260,54]],[[8538,8538],"mapped",[53,8260,54]],[[8539,8539],"mapped",[49,8260,56]],[[8540,8540],"mapped",[51,8260,56]],[[8541,8541],"mapped",[53,8260,56]],[[8542,8542],"mapped",[55,8260,56]],[[8543,8543],"mapped",[49,8260]],[[8544,8544],"mapped",[105]],[[8545,8545],"mapped",[105,105]],[[8546,8546],"mapped",[105,105,105]],[[8547,8547],"mapped",[105,118]],[[8548,8548],"mapped",[118]],[[8549,8549],"mapped",[118,105]],[[8550,8550],"mapped",[118,105,105]],[[8551,8551],"mapped",[118,105,105,105]],[[8552,8552],"mapped",[105,120]],[[8553,8553],"mapped",[120]],[[8554,8554],"mapped",[120,105]],[[8555,8555],"mapped",[120,105,105]],[[8556,8556],"mapped",[108]],[[8557,8557],"mapped",[99]],[[8558,8558],"mapped",[100]],[[8559,8559],"mapped",[109]],[[8560,8560],"mapped",[105]],[[8561,8561],"mapped",[105,105]],[[8562,8562],"mapped",[105,105,105]],[[8563,8563],"mapped",[105,118]],[[8564,8564],"mapped",[118]],[[8565,8565],"mapped",[118,105]],[[8566,8566],"mapped",[118,105,105]],[[8567,8567],"mapped",[118,105,105,105]],[[8568,8568],"mapped",[105,120]],[[8569,8569],"mapped",[120]],[[8570,8570],"mapped",[120,105]],[[8571,8571],"mapped",[120,105,105]],[[8572,8572],"mapped",[108]],[[8573,8573],"mapped",[99]],[[8574,8574],"mapped",[100]],[[8575,8575],"mapped",[109]],[[8576,8578],"valid",[],"NV8"],[[8579,8579],"disallowed"],[[8580,8580],"valid"],[[8581,8584],"valid",[],"NV8"],[[8585,8585],"mapped",[48,8260,51]],[[8586,8587],"valid",[],"NV8"],[[8588,8591],"disallowed"],[[8592,8682],"valid",[],"NV8"],[[8683,8691],"valid",[],"NV8"],[[8692,8703],"valid",[],"NV8"],[[8704,8747],"valid",[],"NV8"],[[8748,8748],"mapped",[8747,8747]],[[8749,8749],"mapped",[8747,8747,8747]],[[8750,8750],"valid",[],"NV8"],[[8751,8751],"mapped",[8750,8750]],[[8752,8752],"mapped",[8750,8750,8750]],[[8753,8799],"valid",[],"NV8"],[[8800,8800],"disallowed_STD3_valid"],[[8801,8813],"valid",[],"NV8"],[[8814,8815],"disallowed_STD3_valid"],[[8816,8945],"valid",[],"NV8"],[[8946,8959],"valid",[],"NV8"],[[8960,8960],"valid",[],"NV8"],[[8961,8961],"valid",[],"NV8"],[[8962,9000],"valid",[],"NV8"],[[9001,9001],"mapped",[12296]],[[9002,9002],"mapped",[12297]],[[9003,9082],"valid",[],"NV8"],[[9083,9083],"valid",[],"NV8"],[[9084,9084],"valid",[],"NV8"],[[9085,9114],"valid",[],"NV8"],[[9115,9166],"valid",[],"NV8"],[[9167,9168],"valid",[],"NV8"],[[9169,9179],"valid",[],"NV8"],[[9180,9191],"valid",[],"NV8"],[[9192,9192],"valid",[],"NV8"],[[9193,9203],"valid",[],"NV8"],[[9204,9210],"valid",[],"NV8"],[[9211,9215],"disallowed"],[[9216,9252],"valid",[],"NV8"],[[9253,9254],"valid",[],"NV8"],[[9255,9279],"disallowed"],[[9280,9290],"valid",[],"NV8"],[[9291,9311],"disallowed"],[[9312,9312],"mapped",[49]],[[9313,9313],"mapped",[50]],[[9314,9314],"mapped",[51]],[[9315,9315],"mapped",[52]],[[9316,9316],"mapped",[53]],[[9317,9317],"mapped",[54]],[[9318,9318],"mapped",[55]],[[9319,9319],"mapped",[56]],[[9320,9320],"mapped",[57]],[[9321,9321],"mapped",[49,48]],[[9322,9322],"mapped",[49,49]],[[9323,9323],"mapped",[49,50]],[[9324,9324],"mapped",[49,51]],[[9325,9325],"mapped",[49,52]],[[9326,9326],"mapped",[49,53]],[[9327,9327],"mapped",[49,54]],[[9328,9328],"mapped",[49,55]],[[9329,9329],"mapped",[49,56]],[[9330,9330],"mapped",[49,57]],[[9331,9331],"mapped",[50,48]],[[9332,9332],"disallowed_STD3_mapped",[40,49,41]],[[9333,9333],"disallowed_STD3_mapped",[40,50,41]],[[9334,9334],"disallowed_STD3_mapped",[40,51,41]],[[9335,9335],"disallowed_STD3_mapped",[40,52,41]],[[9336,9336],"disallowed_STD3_mapped",[40,53,41]],[[9337,9337],"disallowed_STD3_mapped",[40,54,41]],[[9338,9338],"disallowed_STD3_mapped",[40,55,41]],[[9339,9339],"disallowed_STD3_mapped",[40,56,41]],[[9340,9340],"disallowed_STD3_mapped",[40,57,41]],[[9341,9341],"disallowed_STD3_mapped",[40,49,48,41]],[[9342,9342],"disallowed_STD3_mapped",[40,49,49,41]],[[9343,9343],"disallowed_STD3_mapped",[40,49,50,41]],[[9344,9344],"disallowed_STD3_mapped",[40,49,51,41]],[[9345,9345],"disallowed_STD3_mapped",[40,49,52,41]],[[9346,9346],"disallowed_STD3_mapped",[40,49,53,41]],[[9347,9347],"disallowed_STD3_mapped",[40,49,54,41]],[[9348,9348],"disallowed_STD3_mapped",[40,49,55,41]],[[9349,9349],"disallowed_STD3_mapped",[40,49,56,41]],[[9350,9350],"disallowed_STD3_mapped",[40,49,57,41]],[[9351,9351],"disallowed_STD3_mapped",[40,50,48,41]],[[9352,9371],"disallowed"],[[9372,9372],"disallowed_STD3_mapped",[40,97,41]],[[9373,9373],"disallowed_STD3_mapped",[40,98,41]],[[9374,9374],"disallowed_STD3_mapped",[40,99,41]],[[9375,9375],"disallowed_STD3_mapped",[40,100,41]],[[9376,9376],"disallowed_STD3_mapped",[40,101,41]],[[9377,9377],"disallowed_STD3_mapped",[40,102,41]],[[9378,9378],"disallowed_STD3_mapped",[40,103,41]],[[9379,9379],"disallowed_STD3_mapped",[40,104,41]],[[9380,9380],"disallowed_STD3_mapped",[40,105,41]],[[9381,9381],"disallowed_STD3_mapped",[40,106,41]],[[9382,9382],"disallowed_STD3_mapped",[40,107,41]],[[9383,9383],"disallowed_STD3_mapped",[40,108,41]],[[9384,9384],"disallowed_STD3_mapped",[40,109,41]],[[9385,9385],"disallowed_STD3_mapped",[40,110,41]],[[9386,9386],"disallowed_STD3_mapped",[40,111,41]],[[9387,9387],"disallowed_STD3_mapped",[40,112,41]],[[9388,9388],"disallowed_STD3_mapped",[40,113,41]],[[9389,9389],"disallowed_STD3_mapped",[40,114,41]],[[9390,9390],"disallowed_STD3_mapped",[40,115,41]],[[9391,9391],"disallowed_STD3_mapped",[40,116,41]],[[9392,9392],"disallowed_STD3_mapped",[40,117,41]],[[9393,9393],"disallowed_STD3_mapped",[40,118,41]],[[9394,9394],"disallowed_STD3_mapped",[40,119,41]],[[9395,9395],"disallowed_STD3_mapped",[40,120,41]],[[9396,9396],"disallowed_STD3_mapped",[40,121,41]],[[9397,9397],"disallowed_STD3_mapped",[40,122,41]],[[9398,9398],"mapped",[97]],[[9399,9399],"mapped",[98]],[[9400,9400],"mapped",[99]],[[9401,9401],"mapped",[100]],[[9402,9402],"mapped",[101]],[[9403,9403],"mapped",[102]],[[9404,9404],"mapped",[103]],[[9405,9405],"mapped",[104]],[[9406,9406],"mapped",[105]],[[9407,9407],"mapped",[106]],[[9408,9408],"mapped",[107]],[[9409,9409],"mapped",[108]],[[9410,9410],"mapped",[109]],[[9411,9411],"mapped",[110]],[[9412,9412],"mapped",[111]],[[9413,9413],"mapped",[112]],[[9414,9414],"mapped",[113]],[[9415,9415],"mapped",[114]],[[9416,9416],"mapped",[115]],[[9417,9417],"mapped",[116]],[[9418,9418],"mapped",[117]],[[9419,9419],"mapped",[118]],[[9420,9420],"mapped",[119]],[[9421,9421],"mapped",[120]],[[9422,9422],"mapped",[121]],[[9423,9423],"mapped",[122]],[[9424,9424],"mapped",[97]],[[9425,9425],"mapped",[98]],[[9426,9426],"mapped",[99]],[[9427,9427],"mapped",[100]],[[9428,9428],"mapped",[101]],[[9429,9429],"mapped",[102]],[[9430,9430],"mapped",[103]],[[9431,9431],"mapped",[104]],[[9432,9432],"mapped",[105]],[[9433,9433],"mapped",[106]],[[9434,9434],"mapped",[107]],[[9435,9435],"mapped",[108]],[[9436,9436],"mapped",[109]],[[9437,9437],"mapped",[110]],[[9438,9438],"mapped",[111]],[[9439,9439],"mapped",[112]],[[9440,9440],"mapped",[113]],[[9441,9441],"mapped",[114]],[[9442,9442],"mapped",[115]],[[9443,9443],"mapped",[116]],[[9444,9444],"mapped",[117]],[[9445,9445],"mapped",[118]],[[9446,9446],"mapped",[119]],[[9447,9447],"mapped",[120]],[[9448,9448],"mapped",[121]],[[9449,9449],"mapped",[122]],[[9450,9450],"mapped",[48]],[[9451,9470],"valid",[],"NV8"],[[9471,9471],"valid",[],"NV8"],[[9472,9621],"valid",[],"NV8"],[[9622,9631],"valid",[],"NV8"],[[9632,9711],"valid",[],"NV8"],[[9712,9719],"valid",[],"NV8"],[[9720,9727],"valid",[],"NV8"],[[9728,9747],"valid",[],"NV8"],[[9748,9749],"valid",[],"NV8"],[[9750,9751],"valid",[],"NV8"],[[9752,9752],"valid",[],"NV8"],[[9753,9753],"valid",[],"NV8"],[[9754,9839],"valid",[],"NV8"],[[9840,9841],"valid",[],"NV8"],[[9842,9853],"valid",[],"NV8"],[[9854,9855],"valid",[],"NV8"],[[9856,9865],"valid",[],"NV8"],[[9866,9873],"valid",[],"NV8"],[[9874,9884],"valid",[],"NV8"],[[9885,9885],"valid",[],"NV8"],[[9886,9887],"valid",[],"NV8"],[[9888,9889],"valid",[],"NV8"],[[9890,9905],"valid",[],"NV8"],[[9906,9906],"valid",[],"NV8"],[[9907,9916],"valid",[],"NV8"],[[9917,9919],"valid",[],"NV8"],[[9920,9923],"valid",[],"NV8"],[[9924,9933],"valid",[],"NV8"],[[9934,9934],"valid",[],"NV8"],[[9935,9953],"valid",[],"NV8"],[[9954,9954],"valid",[],"NV8"],[[9955,9955],"valid",[],"NV8"],[[9956,9959],"valid",[],"NV8"],[[9960,9983],"valid",[],"NV8"],[[9984,9984],"valid",[],"NV8"],[[9985,9988],"valid",[],"NV8"],[[9989,9989],"valid",[],"NV8"],[[9990,9993],"valid",[],"NV8"],[[9994,9995],"valid",[],"NV8"],[[9996,10023],"valid",[],"NV8"],[[10024,10024],"valid",[],"NV8"],[[10025,10059],"valid",[],"NV8"],[[10060,10060],"valid",[],"NV8"],[[10061,10061],"valid",[],"NV8"],[[10062,10062],"valid",[],"NV8"],[[10063,10066],"valid",[],"NV8"],[[10067,10069],"valid",[],"NV8"],[[10070,10070],"valid",[],"NV8"],[[10071,10071],"valid",[],"NV8"],[[10072,10078],"valid",[],"NV8"],[[10079,10080],"valid",[],"NV8"],[[10081,10087],"valid",[],"NV8"],[[10088,10101],"valid",[],"NV8"],[[10102,10132],"valid",[],"NV8"],[[10133,10135],"valid",[],"NV8"],[[10136,10159],"valid",[],"NV8"],[[10160,10160],"valid",[],"NV8"],[[10161,10174],"valid",[],"NV8"],[[10175,10175],"valid",[],"NV8"],[[10176,10182],"valid",[],"NV8"],[[10183,10186],"valid",[],"NV8"],[[10187,10187],"valid",[],"NV8"],[[10188,10188],"valid",[],"NV8"],[[10189,10189],"valid",[],"NV8"],[[10190,10191],"valid",[],"NV8"],[[10192,10219],"valid",[],"NV8"],[[10220,10223],"valid",[],"NV8"],[[10224,10239],"valid",[],"NV8"],[[10240,10495],"valid",[],"NV8"],[[10496,10763],"valid",[],"NV8"],[[10764,10764],"mapped",[8747,8747,8747,8747]],[[10765,10867],"valid",[],"NV8"],[[10868,10868],"disallowed_STD3_mapped",[58,58,61]],[[10869,10869],"disallowed_STD3_mapped",[61,61]],[[10870,10870],"disallowed_STD3_mapped",[61,61,61]],[[10871,10971],"valid",[],"NV8"],[[10972,10972],"mapped",[10973,824]],[[10973,11007],"valid",[],"NV8"],[[11008,11021],"valid",[],"NV8"],[[11022,11027],"valid",[],"NV8"],[[11028,11034],"valid",[],"NV8"],[[11035,11039],"valid",[],"NV8"],[[11040,11043],"valid",[],"NV8"],[[11044,11084],"valid",[],"NV8"],[[11085,11087],"valid",[],"NV8"],[[11088,11092],"valid",[],"NV8"],[[11093,11097],"valid",[],"NV8"],[[11098,11123],"valid",[],"NV8"],[[11124,11125],"disallowed"],[[11126,11157],"valid",[],"NV8"],[[11158,11159],"disallowed"],[[11160,11193],"valid",[],"NV8"],[[11194,11196],"disallowed"],[[11197,11208],"valid",[],"NV8"],[[11209,11209],"disallowed"],[[11210,11217],"valid",[],"NV8"],[[11218,11243],"disallowed"],[[11244,11247],"valid",[],"NV8"],[[11248,11263],"disallowed"],[[11264,11264],"mapped",[11312]],[[11265,11265],"mapped",[11313]],[[11266,11266],"mapped",[11314]],[[11267,11267],"mapped",[11315]],[[11268,11268],"mapped",[11316]],[[11269,11269],"mapped",[11317]],[[11270,11270],"mapped",[11318]],[[11271,11271],"mapped",[11319]],[[11272,11272],"mapped",[11320]],[[11273,11273],"mapped",[11321]],[[11274,11274],"mapped",[11322]],[[11275,11275],"mapped",[11323]],[[11276,11276],"mapped",[11324]],[[11277,11277],"mapped",[11325]],[[11278,11278],"mapped",[11326]],[[11279,11279],"mapped",[11327]],[[11280,11280],"mapped",[11328]],[[11281,11281],"mapped",[11329]],[[11282,11282],"mapped",[11330]],[[11283,11283],"mapped",[11331]],[[11284,11284],"mapped",[11332]],[[11285,11285],"mapped",[11333]],[[11286,11286],"mapped",[11334]],[[11287,11287],"mapped",[11335]],[[11288,11288],"mapped",[11336]],[[11289,11289],"mapped",[11337]],[[11290,11290],"mapped",[11338]],[[11291,11291],"mapped",[11339]],[[11292,11292],"mapped",[11340]],[[11293,11293],"mapped",[11341]],[[11294,11294],"mapped",[11342]],[[11295,11295],"mapped",[11343]],[[11296,11296],"mapped",[11344]],[[11297,11297],"mapped",[11345]],[[11298,11298],"mapped",[11346]],[[11299,11299],"mapped",[11347]],[[11300,11300],"mapped",[11348]],[[11301,11301],"mapped",[11349]],[[11302,11302],"mapped",[11350]],[[11303,11303],"mapped",[11351]],[[11304,11304],"mapped",[11352]],[[11305,11305],"mapped",[11353]],[[11306,11306],"mapped",[11354]],[[11307,11307],"mapped",[11355]],[[11308,11308],"mapped",[11356]],[[11309,11309],"mapped",[11357]],[[11310,11310],"mapped",[11358]],[[11311,11311],"disallowed"],[[11312,11358],"valid"],[[11359,11359],"disallowed"],[[11360,11360],"mapped",[11361]],[[11361,11361],"valid"],[[11362,11362],"mapped",[619]],[[11363,11363],"mapped",[7549]],[[11364,11364],"mapped",[637]],[[11365,11366],"valid"],[[11367,11367],"mapped",[11368]],[[11368,11368],"valid"],[[11369,11369],"mapped",[11370]],[[11370,11370],"valid"],[[11371,11371],"mapped",[11372]],[[11372,11372],"valid"],[[11373,11373],"mapped",[593]],[[11374,11374],"mapped",[625]],[[11375,11375],"mapped",[592]],[[11376,11376],"mapped",[594]],[[11377,11377],"valid"],[[11378,11378],"mapped",[11379]],[[11379,11379],"valid"],[[11380,11380],"valid"],[[11381,11381],"mapped",[11382]],[[11382,11383],"valid"],[[11384,11387],"valid"],[[11388,11388],"mapped",[106]],[[11389,11389],"mapped",[118]],[[11390,11390],"mapped",[575]],[[11391,11391],"mapped",[576]],[[11392,11392],"mapped",[11393]],[[11393,11393],"valid"],[[11394,11394],"mapped",[11395]],[[11395,11395],"valid"],[[11396,11396],"mapped",[11397]],[[11397,11397],"valid"],[[11398,11398],"mapped",[11399]],[[11399,11399],"valid"],[[11400,11400],"mapped",[11401]],[[11401,11401],"valid"],[[11402,11402],"mapped",[11403]],[[11403,11403],"valid"],[[11404,11404],"mapped",[11405]],[[11405,11405],"valid"],[[11406,11406],"mapped",[11407]],[[11407,11407],"valid"],[[11408,11408],"mapped",[11409]],[[11409,11409],"valid"],[[11410,11410],"mapped",[11411]],[[11411,11411],"valid"],[[11412,11412],"mapped",[11413]],[[11413,11413],"valid"],[[11414,11414],"mapped",[11415]],[[11415,11415],"valid"],[[11416,11416],"mapped",[11417]],[[11417,11417],"valid"],[[11418,11418],"mapped",[11419]],[[11419,11419],"valid"],[[11420,11420],"mapped",[11421]],[[11421,11421],"valid"],[[11422,11422],"mapped",[11423]],[[11423,11423],"valid"],[[11424,11424],"mapped",[11425]],[[11425,11425],"valid"],[[11426,11426],"mapped",[11427]],[[11427,11427],"valid"],[[11428,11428],"mapped",[11429]],[[11429,11429],"valid"],[[11430,11430],"mapped",[11431]],[[11431,11431],"valid"],[[11432,11432],"mapped",[11433]],[[11433,11433],"valid"],[[11434,11434],"mapped",[11435]],[[11435,11435],"valid"],[[11436,11436],"mapped",[11437]],[[11437,11437],"valid"],[[11438,11438],"mapped",[11439]],[[11439,11439],"valid"],[[11440,11440],"mapped",[11441]],[[11441,11441],"valid"],[[11442,11442],"mapped",[11443]],[[11443,11443],"valid"],[[11444,11444],"mapped",[11445]],[[11445,11445],"valid"],[[11446,11446],"mapped",[11447]],[[11447,11447],"valid"],[[11448,11448],"mapped",[11449]],[[11449,11449],"valid"],[[11450,11450],"mapped",[11451]],[[11451,11451],"valid"],[[11452,11452],"mapped",[11453]],[[11453,11453],"valid"],[[11454,11454],"mapped",[11455]],[[11455,11455],"valid"],[[11456,11456],"mapped",[11457]],[[11457,11457],"valid"],[[11458,11458],"mapped",[11459]],[[11459,11459],"valid"],[[11460,11460],"mapped",[11461]],[[11461,11461],"valid"],[[11462,11462],"mapped",[11463]],[[11463,11463],"valid"],[[11464,11464],"mapped",[11465]],[[11465,11465],"valid"],[[11466,11466],"mapped",[11467]],[[11467,11467],"valid"],[[11468,11468],"mapped",[11469]],[[11469,11469],"valid"],[[11470,11470],"mapped",[11471]],[[11471,11471],"valid"],[[11472,11472],"mapped",[11473]],[[11473,11473],"valid"],[[11474,11474],"mapped",[11475]],[[11475,11475],"valid"],[[11476,11476],"mapped",[11477]],[[11477,11477],"valid"],[[11478,11478],"mapped",[11479]],[[11479,11479],"valid"],[[11480,11480],"mapped",[11481]],[[11481,11481],"valid"],[[11482,11482],"mapped",[11483]],[[11483,11483],"valid"],[[11484,11484],"mapped",[11485]],[[11485,11485],"valid"],[[11486,11486],"mapped",[11487]],[[11487,11487],"valid"],[[11488,11488],"mapped",[11489]],[[11489,11489],"valid"],[[11490,11490],"mapped",[11491]],[[11491,11492],"valid"],[[11493,11498],"valid",[],"NV8"],[[11499,11499],"mapped",[11500]],[[11500,11500],"valid"],[[11501,11501],"mapped",[11502]],[[11502,11505],"valid"],[[11506,11506],"mapped",[11507]],[[11507,11507],"valid"],[[11508,11512],"disallowed"],[[11513,11519],"valid",[],"NV8"],[[11520,11557],"valid"],[[11558,11558],"disallowed"],[[11559,11559],"valid"],[[11560,11564],"disallowed"],[[11565,11565],"valid"],[[11566,11567],"disallowed"],[[11568,11621],"valid"],[[11622,11623],"valid"],[[11624,11630],"disallowed"],[[11631,11631],"mapped",[11617]],[[11632,11632],"valid",[],"NV8"],[[11633,11646],"disallowed"],[[11647,11647],"valid"],[[11648,11670],"valid"],[[11671,11679],"disallowed"],[[11680,11686],"valid"],[[11687,11687],"disallowed"],[[11688,11694],"valid"],[[11695,11695],"disallowed"],[[11696,11702],"valid"],[[11703,11703],"disallowed"],[[11704,11710],"valid"],[[11711,11711],"disallowed"],[[11712,11718],"valid"],[[11719,11719],"disallowed"],[[11720,11726],"valid"],[[11727,11727],"disallowed"],[[11728,11734],"valid"],[[11735,11735],"disallowed"],[[11736,11742],"valid"],[[11743,11743],"disallowed"],[[11744,11775],"valid"],[[11776,11799],"valid",[],"NV8"],[[11800,11803],"valid",[],"NV8"],[[11804,11805],"valid",[],"NV8"],[[11806,11822],"valid",[],"NV8"],[[11823,11823],"valid"],[[11824,11824],"valid",[],"NV8"],[[11825,11825],"valid",[],"NV8"],[[11826,11835],"valid",[],"NV8"],[[11836,11842],"valid",[],"NV8"],[[11843,11903],"disallowed"],[[11904,11929],"valid",[],"NV8"],[[11930,11930],"disallowed"],[[11931,11934],"valid",[],"NV8"],[[11935,11935],"mapped",[27597]],[[11936,12018],"valid",[],"NV8"],[[12019,12019],"mapped",[40863]],[[12020,12031],"disallowed"],[[12032,12032],"mapped",[19968]],[[12033,12033],"mapped",[20008]],[[12034,12034],"mapped",[20022]],[[12035,12035],"mapped",[20031]],[[12036,12036],"mapped",[20057]],[[12037,12037],"mapped",[20101]],[[12038,12038],"mapped",[20108]],[[12039,12039],"mapped",[20128]],[[12040,12040],"mapped",[20154]],[[12041,12041],"mapped",[20799]],[[12042,12042],"mapped",[20837]],[[12043,12043],"mapped",[20843]],[[12044,12044],"mapped",[20866]],[[12045,12045],"mapped",[20886]],[[12046,12046],"mapped",[20907]],[[12047,12047],"mapped",[20960]],[[12048,12048],"mapped",[20981]],[[12049,12049],"mapped",[20992]],[[12050,12050],"mapped",[21147]],[[12051,12051],"mapped",[21241]],[[12052,12052],"mapped",[21269]],[[12053,12053],"mapped",[21274]],[[12054,12054],"mapped",[21304]],[[12055,12055],"mapped",[21313]],[[12056,12056],"mapped",[21340]],[[12057,12057],"mapped",[21353]],[[12058,12058],"mapped",[21378]],[[12059,12059],"mapped",[21430]],[[12060,12060],"mapped",[21448]],[[12061,12061],"mapped",[21475]],[[12062,12062],"mapped",[22231]],[[12063,12063],"mapped",[22303]],[[12064,12064],"mapped",[22763]],[[12065,12065],"mapped",[22786]],[[12066,12066],"mapped",[22794]],[[12067,12067],"mapped",[22805]],[[12068,12068],"mapped",[22823]],[[12069,12069],"mapped",[22899]],[[12070,12070],"mapped",[23376]],[[12071,12071],"mapped",[23424]],[[12072,12072],"mapped",[23544]],[[12073,12073],"mapped",[23567]],[[12074,12074],"mapped",[23586]],[[12075,12075],"mapped",[23608]],[[12076,12076],"mapped",[23662]],[[12077,12077],"mapped",[23665]],[[12078,12078],"mapped",[24027]],[[12079,12079],"mapped",[24037]],[[12080,12080],"mapped",[24049]],[[12081,12081],"mapped",[24062]],[[12082,12082],"mapped",[24178]],[[12083,12083],"mapped",[24186]],[[12084,12084],"mapped",[24191]],[[12085,12085],"mapped",[24308]],[[12086,12086],"mapped",[24318]],[[12087,12087],"mapped",[24331]],[[12088,12088],"mapped",[24339]],[[12089,12089],"mapped",[24400]],[[12090,12090],"mapped",[24417]],[[12091,12091],"mapped",[24435]],[[12092,12092],"mapped",[24515]],[[12093,12093],"mapped",[25096]],[[12094,12094],"mapped",[25142]],[[12095,12095],"mapped",[25163]],[[12096,12096],"mapped",[25903]],[[12097,12097],"mapped",[25908]],[[12098,12098],"mapped",[25991]],[[12099,12099],"mapped",[26007]],[[12100,12100],"mapped",[26020]],[[12101,12101],"mapped",[26041]],[[12102,12102],"mapped",[26080]],[[12103,12103],"mapped",[26085]],[[12104,12104],"mapped",[26352]],[[12105,12105],"mapped",[26376]],[[12106,12106],"mapped",[26408]],[[12107,12107],"mapped",[27424]],[[12108,12108],"mapped",[27490]],[[12109,12109],"mapped",[27513]],[[12110,12110],"mapped",[27571]],[[12111,12111],"mapped",[27595]],[[12112,12112],"mapped",[27604]],[[12113,12113],"mapped",[27611]],[[12114,12114],"mapped",[27663]],[[12115,12115],"mapped",[27668]],[[12116,12116],"mapped",[27700]],[[12117,12117],"mapped",[28779]],[[12118,12118],"mapped",[29226]],[[12119,12119],"mapped",[29238]],[[12120,12120],"mapped",[29243]],[[12121,12121],"mapped",[29247]],[[12122,12122],"mapped",[29255]],[[12123,12123],"mapped",[29273]],[[12124,12124],"mapped",[29275]],[[12125,12125],"mapped",[29356]],[[12126,12126],"mapped",[29572]],[[12127,12127],"mapped",[29577]],[[12128,12128],"mapped",[29916]],[[12129,12129],"mapped",[29926]],[[12130,12130],"mapped",[29976]],[[12131,12131],"mapped",[29983]],[[12132,12132],"mapped",[29992]],[[12133,12133],"mapped",[30000]],[[12134,12134],"mapped",[30091]],[[12135,12135],"mapped",[30098]],[[12136,12136],"mapped",[30326]],[[12137,12137],"mapped",[30333]],[[12138,12138],"mapped",[30382]],[[12139,12139],"mapped",[30399]],[[12140,12140],"mapped",[30446]],[[12141,12141],"mapped",[30683]],[[12142,12142],"mapped",[30690]],[[12143,12143],"mapped",[30707]],[[12144,12144],"mapped",[31034]],[[12145,12145],"mapped",[31160]],[[12146,12146],"mapped",[31166]],[[12147,12147],"mapped",[31348]],[[12148,12148],"mapped",[31435]],[[12149,12149],"mapped",[31481]],[[12150,12150],"mapped",[31859]],[[12151,12151],"mapped",[31992]],[[12152,12152],"mapped",[32566]],[[12153,12153],"mapped",[32593]],[[12154,12154],"mapped",[32650]],[[12155,12155],"mapped",[32701]],[[12156,12156],"mapped",[32769]],[[12157,12157],"mapped",[32780]],[[12158,12158],"mapped",[32786]],[[12159,12159],"mapped",[32819]],[[12160,12160],"mapped",[32895]],[[12161,12161],"mapped",[32905]],[[12162,12162],"mapped",[33251]],[[12163,12163],"mapped",[33258]],[[12164,12164],"mapped",[33267]],[[12165,12165],"mapped",[33276]],[[12166,12166],"mapped",[33292]],[[12167,12167],"mapped",[33307]],[[12168,12168],"mapped",[33311]],[[12169,12169],"mapped",[33390]],[[12170,12170],"mapped",[33394]],[[12171,12171],"mapped",[33400]],[[12172,12172],"mapped",[34381]],[[12173,12173],"mapped",[34411]],[[12174,12174],"mapped",[34880]],[[12175,12175],"mapped",[34892]],[[12176,12176],"mapped",[34915]],[[12177,12177],"mapped",[35198]],[[12178,12178],"mapped",[35211]],[[12179,12179],"mapped",[35282]],[[12180,12180],"mapped",[35328]],[[12181,12181],"mapped",[35895]],[[12182,12182],"mapped",[35910]],[[12183,12183],"mapped",[35925]],[[12184,12184],"mapped",[35960]],[[12185,12185],"mapped",[35997]],[[12186,12186],"mapped",[36196]],[[12187,12187],"mapped",[36208]],[[12188,12188],"mapped",[36275]],[[12189,12189],"mapped",[36523]],[[12190,12190],"mapped",[36554]],[[12191,12191],"mapped",[36763]],[[12192,12192],"mapped",[36784]],[[12193,12193],"mapped",[36789]],[[12194,12194],"mapped",[37009]],[[12195,12195],"mapped",[37193]],[[12196,12196],"mapped",[37318]],[[12197,12197],"mapped",[37324]],[[12198,12198],"mapped",[37329]],[[12199,12199],"mapped",[38263]],[[12200,12200],"mapped",[38272]],[[12201,12201],"mapped",[38428]],[[12202,12202],"mapped",[38582]],[[12203,12203],"mapped",[38585]],[[12204,12204],"mapped",[38632]],[[12205,12205],"mapped",[38737]],[[12206,12206],"mapped",[38750]],[[12207,12207],"mapped",[38754]],[[12208,12208],"mapped",[38761]],[[12209,12209],"mapped",[38859]],[[12210,12210],"mapped",[38893]],[[12211,12211],"mapped",[38899]],[[12212,12212],"mapped",[38913]],[[12213,12213],"mapped",[39080]],[[12214,12214],"mapped",[39131]],[[12215,12215],"mapped",[39135]],[[12216,12216],"mapped",[39318]],[[12217,12217],"mapped",[39321]],[[12218,12218],"mapped",[39340]],[[12219,12219],"mapped",[39592]],[[12220,12220],"mapped",[39640]],[[12221,12221],"mapped",[39647]],[[12222,12222],"mapped",[39717]],[[12223,12223],"mapped",[39727]],[[12224,12224],"mapped",[39730]],[[12225,12225],"mapped",[39740]],[[12226,12226],"mapped",[39770]],[[12227,12227],"mapped",[40165]],[[12228,12228],"mapped",[40565]],[[12229,12229],"mapped",[40575]],[[12230,12230],"mapped",[40613]],[[12231,12231],"mapped",[40635]],[[12232,12232],"mapped",[40643]],[[12233,12233],"mapped",[40653]],[[12234,12234],"mapped",[40657]],[[12235,12235],"mapped",[40697]],[[12236,12236],"mapped",[40701]],[[12237,12237],"mapped",[40718]],[[12238,12238],"mapped",[40723]],[[12239,12239],"mapped",[40736]],[[12240,12240],"mapped",[40763]],[[12241,12241],"mapped",[40778]],[[12242,12242],"mapped",[40786]],[[12243,12243],"mapped",[40845]],[[12244,12244],"mapped",[40860]],[[12245,12245],"mapped",[40864]],[[12246,12271],"disallowed"],[[12272,12283],"disallowed"],[[12284,12287],"disallowed"],[[12288,12288],"disallowed_STD3_mapped",[32]],[[12289,12289],"valid",[],"NV8"],[[12290,12290],"mapped",[46]],[[12291,12292],"valid",[],"NV8"],[[12293,12295],"valid"],[[12296,12329],"valid",[],"NV8"],[[12330,12333],"valid"],[[12334,12341],"valid",[],"NV8"],[[12342,12342],"mapped",[12306]],[[12343,12343],"valid",[],"NV8"],[[12344,12344],"mapped",[21313]],[[12345,12345],"mapped",[21316]],[[12346,12346],"mapped",[21317]],[[12347,12347],"valid",[],"NV8"],[[12348,12348],"valid"],[[12349,12349],"valid",[],"NV8"],[[12350,12350],"valid",[],"NV8"],[[12351,12351],"valid",[],"NV8"],[[12352,12352],"disallowed"],[[12353,12436],"valid"],[[12437,12438],"valid"],[[12439,12440],"disallowed"],[[12441,12442],"valid"],[[12443,12443],"disallowed_STD3_mapped",[32,12441]],[[12444,12444],"disallowed_STD3_mapped",[32,12442]],[[12445,12446],"valid"],[[12447,12447],"mapped",[12424,12426]],[[12448,12448],"valid",[],"NV8"],[[12449,12542],"valid"],[[12543,12543],"mapped",[12467,12488]],[[12544,12548],"disallowed"],[[12549,12588],"valid"],[[12589,12589],"valid"],[[12590,12592],"disallowed"],[[12593,12593],"mapped",[4352]],[[12594,12594],"mapped",[4353]],[[12595,12595],"mapped",[4522]],[[12596,12596],"mapped",[4354]],[[12597,12597],"mapped",[4524]],[[12598,12598],"mapped",[4525]],[[12599,12599],"mapped",[4355]],[[12600,12600],"mapped",[4356]],[[12601,12601],"mapped",[4357]],[[12602,12602],"mapped",[4528]],[[12603,12603],"mapped",[4529]],[[12604,12604],"mapped",[4530]],[[12605,12605],"mapped",[4531]],[[12606,12606],"mapped",[4532]],[[12607,12607],"mapped",[4533]],[[12608,12608],"mapped",[4378]],[[12609,12609],"mapped",[4358]],[[12610,12610],"mapped",[4359]],[[12611,12611],"mapped",[4360]],[[12612,12612],"mapped",[4385]],[[12613,12613],"mapped",[4361]],[[12614,12614],"mapped",[4362]],[[12615,12615],"mapped",[4363]],[[12616,12616],"mapped",[4364]],[[12617,12617],"mapped",[4365]],[[12618,12618],"mapped",[4366]],[[12619,12619],"mapped",[4367]],[[12620,12620],"mapped",[4368]],[[12621,12621],"mapped",[4369]],[[12622,12622],"mapped",[4370]],[[12623,12623],"mapped",[4449]],[[12624,12624],"mapped",[4450]],[[12625,12625],"mapped",[4451]],[[12626,12626],"mapped",[4452]],[[12627,12627],"mapped",[4453]],[[12628,12628],"mapped",[4454]],[[12629,12629],"mapped",[4455]],[[12630,12630],"mapped",[4456]],[[12631,12631],"mapped",[4457]],[[12632,12632],"mapped",[4458]],[[12633,12633],"mapped",[4459]],[[12634,12634],"mapped",[4460]],[[12635,12635],"mapped",[4461]],[[12636,12636],"mapped",[4462]],[[12637,12637],"mapped",[4463]],[[12638,12638],"mapped",[4464]],[[12639,12639],"mapped",[4465]],[[12640,12640],"mapped",[4466]],[[12641,12641],"mapped",[4467]],[[12642,12642],"mapped",[4468]],[[12643,12643],"mapped",[4469]],[[12644,12644],"disallowed"],[[12645,12645],"mapped",[4372]],[[12646,12646],"mapped",[4373]],[[12647,12647],"mapped",[4551]],[[12648,12648],"mapped",[4552]],[[12649,12649],"mapped",[4556]],[[12650,12650],"mapped",[4558]],[[12651,12651],"mapped",[4563]],[[12652,12652],"mapped",[4567]],[[12653,12653],"mapped",[4569]],[[12654,12654],"mapped",[4380]],[[12655,12655],"mapped",[4573]],[[12656,12656],"mapped",[4575]],[[12657,12657],"mapped",[4381]],[[12658,12658],"mapped",[4382]],[[12659,12659],"mapped",[4384]],[[12660,12660],"mapped",[4386]],[[12661,12661],"mapped",[4387]],[[12662,12662],"mapped",[4391]],[[12663,12663],"mapped",[4393]],[[12664,12664],"mapped",[4395]],[[12665,12665],"mapped",[4396]],[[12666,12666],"mapped",[4397]],[[12667,12667],"mapped",[4398]],[[12668,12668],"mapped",[4399]],[[12669,12669],"mapped",[4402]],[[12670,12670],"mapped",[4406]],[[12671,12671],"mapped",[4416]],[[12672,12672],"mapped",[4423]],[[12673,12673],"mapped",[4428]],[[12674,12674],"mapped",[4593]],[[12675,12675],"mapped",[4594]],[[12676,12676],"mapped",[4439]],[[12677,12677],"mapped",[4440]],[[12678,12678],"mapped",[4441]],[[12679,12679],"mapped",[4484]],[[12680,12680],"mapped",[4485]],[[12681,12681],"mapped",[4488]],[[12682,12682],"mapped",[4497]],[[12683,12683],"mapped",[4498]],[[12684,12684],"mapped",[4500]],[[12685,12685],"mapped",[4510]],[[12686,12686],"mapped",[4513]],[[12687,12687],"disallowed"],[[12688,12689],"valid",[],"NV8"],[[12690,12690],"mapped",[19968]],[[12691,12691],"mapped",[20108]],[[12692,12692],"mapped",[19977]],[[12693,12693],"mapped",[22235]],[[12694,12694],"mapped",[19978]],[[12695,12695],"mapped",[20013]],[[12696,12696],"mapped",[19979]],[[12697,12697],"mapped",[30002]],[[12698,12698],"mapped",[20057]],[[12699,12699],"mapped",[19993]],[[12700,12700],"mapped",[19969]],[[12701,12701],"mapped",[22825]],[[12702,12702],"mapped",[22320]],[[12703,12703],"mapped",[20154]],[[12704,12727],"valid"],[[12728,12730],"valid"],[[12731,12735],"disallowed"],[[12736,12751],"valid",[],"NV8"],[[12752,12771],"valid",[],"NV8"],[[12772,12783],"disallowed"],[[12784,12799],"valid"],[[12800,12800],"disallowed_STD3_mapped",[40,4352,41]],[[12801,12801],"disallowed_STD3_mapped",[40,4354,41]],[[12802,12802],"disallowed_STD3_mapped",[40,4355,41]],[[12803,12803],"disallowed_STD3_mapped",[40,4357,41]],[[12804,12804],"disallowed_STD3_mapped",[40,4358,41]],[[12805,12805],"disallowed_STD3_mapped",[40,4359,41]],[[12806,12806],"disallowed_STD3_mapped",[40,4361,41]],[[12807,12807],"disallowed_STD3_mapped",[40,4363,41]],[[12808,12808],"disallowed_STD3_mapped",[40,4364,41]],[[12809,12809],"disallowed_STD3_mapped",[40,4366,41]],[[12810,12810],"disallowed_STD3_mapped",[40,4367,41]],[[12811,12811],"disallowed_STD3_mapped",[40,4368,41]],[[12812,12812],"disallowed_STD3_mapped",[40,4369,41]],[[12813,12813],"disallowed_STD3_mapped",[40,4370,41]],[[12814,12814],"disallowed_STD3_mapped",[40,44032,41]],[[12815,12815],"disallowed_STD3_mapped",[40,45208,41]],[[12816,12816],"disallowed_STD3_mapped",[40,45796,41]],[[12817,12817],"disallowed_STD3_mapped",[40,46972,41]],[[12818,12818],"disallowed_STD3_mapped",[40,47560,41]],[[12819,12819],"disallowed_STD3_mapped",[40,48148,41]],[[12820,12820],"disallowed_STD3_mapped",[40,49324,41]],[[12821,12821],"disallowed_STD3_mapped",[40,50500,41]],[[12822,12822],"disallowed_STD3_mapped",[40,51088,41]],[[12823,12823],"disallowed_STD3_mapped",[40,52264,41]],[[12824,12824],"disallowed_STD3_mapped",[40,52852,41]],[[12825,12825],"disallowed_STD3_mapped",[40,53440,41]],[[12826,12826],"disallowed_STD3_mapped",[40,54028,41]],[[12827,12827],"disallowed_STD3_mapped",[40,54616,41]],[[12828,12828],"disallowed_STD3_mapped",[40,51452,41]],[[12829,12829],"disallowed_STD3_mapped",[40,50724,51204,41]],[[12830,12830],"disallowed_STD3_mapped",[40,50724,54980,41]],[[12831,12831],"disallowed"],[[12832,12832],"disallowed_STD3_mapped",[40,19968,41]],[[12833,12833],"disallowed_STD3_mapped",[40,20108,41]],[[12834,12834],"disallowed_STD3_mapped",[40,19977,41]],[[12835,12835],"disallowed_STD3_mapped",[40,22235,41]],[[12836,12836],"disallowed_STD3_mapped",[40,20116,41]],[[12837,12837],"disallowed_STD3_mapped",[40,20845,41]],[[12838,12838],"disallowed_STD3_mapped",[40,19971,41]],[[12839,12839],"disallowed_STD3_mapped",[40,20843,41]],[[12840,12840],"disallowed_STD3_mapped",[40,20061,41]],[[12841,12841],"disallowed_STD3_mapped",[40,21313,41]],[[12842,12842],"disallowed_STD3_mapped",[40,26376,41]],[[12843,12843],"disallowed_STD3_mapped",[40,28779,41]],[[12844,12844],"disallowed_STD3_mapped",[40,27700,41]],[[12845,12845],"disallowed_STD3_mapped",[40,26408,41]],[[12846,12846],"disallowed_STD3_mapped",[40,37329,41]],[[12847,12847],"disallowed_STD3_mapped",[40,22303,41]],[[12848,12848],"disallowed_STD3_mapped",[40,26085,41]],[[12849,12849],"disallowed_STD3_mapped",[40,26666,41]],[[12850,12850],"disallowed_STD3_mapped",[40,26377,41]],[[12851,12851],"disallowed_STD3_mapped",[40,31038,41]],[[12852,12852],"disallowed_STD3_mapped",[40,21517,41]],[[12853,12853],"disallowed_STD3_mapped",[40,29305,41]],[[12854,12854],"disallowed_STD3_mapped",[40,36001,41]],[[12855,12855],"disallowed_STD3_mapped",[40,31069,41]],[[12856,12856],"disallowed_STD3_mapped",[40,21172,41]],[[12857,12857],"disallowed_STD3_mapped",[40,20195,41]],[[12858,12858],"disallowed_STD3_mapped",[40,21628,41]],[[12859,12859],"disallowed_STD3_mapped",[40,23398,41]],[[12860,12860],"disallowed_STD3_mapped",[40,30435,41]],[[12861,12861],"disallowed_STD3_mapped",[40,20225,41]],[[12862,12862],"disallowed_STD3_mapped",[40,36039,41]],[[12863,12863],"disallowed_STD3_mapped",[40,21332,41]],[[12864,12864],"disallowed_STD3_mapped",[40,31085,41]],[[12865,12865],"disallowed_STD3_mapped",[40,20241,41]],[[12866,12866],"disallowed_STD3_mapped",[40,33258,41]],[[12867,12867],"disallowed_STD3_mapped",[40,33267,41]],[[12868,12868],"mapped",[21839]],[[12869,12869],"mapped",[24188]],[[12870,12870],"mapped",[25991]],[[12871,12871],"mapped",[31631]],[[12872,12879],"valid",[],"NV8"],[[12880,12880],"mapped",[112,116,101]],[[12881,12881],"mapped",[50,49]],[[12882,12882],"mapped",[50,50]],[[12883,12883],"mapped",[50,51]],[[12884,12884],"mapped",[50,52]],[[12885,12885],"mapped",[50,53]],[[12886,12886],"mapped",[50,54]],[[12887,12887],"mapped",[50,55]],[[12888,12888],"mapped",[50,56]],[[12889,12889],"mapped",[50,57]],[[12890,12890],"mapped",[51,48]],[[12891,12891],"mapped",[51,49]],[[12892,12892],"mapped",[51,50]],[[12893,12893],"mapped",[51,51]],[[12894,12894],"mapped",[51,52]],[[12895,12895],"mapped",[51,53]],[[12896,12896],"mapped",[4352]],[[12897,12897],"mapped",[4354]],[[12898,12898],"mapped",[4355]],[[12899,12899],"mapped",[4357]],[[12900,12900],"mapped",[4358]],[[12901,12901],"mapped",[4359]],[[12902,12902],"mapped",[4361]],[[12903,12903],"mapped",[4363]],[[12904,12904],"mapped",[4364]],[[12905,12905],"mapped",[4366]],[[12906,12906],"mapped",[4367]],[[12907,12907],"mapped",[4368]],[[12908,12908],"mapped",[4369]],[[12909,12909],"mapped",[4370]],[[12910,12910],"mapped",[44032]],[[12911,12911],"mapped",[45208]],[[12912,12912],"mapped",[45796]],[[12913,12913],"mapped",[46972]],[[12914,12914],"mapped",[47560]],[[12915,12915],"mapped",[48148]],[[12916,12916],"mapped",[49324]],[[12917,12917],"mapped",[50500]],[[12918,12918],"mapped",[51088]],[[12919,12919],"mapped",[52264]],[[12920,12920],"mapped",[52852]],[[12921,12921],"mapped",[53440]],[[12922,12922],"mapped",[54028]],[[12923,12923],"mapped",[54616]],[[12924,12924],"mapped",[52280,44256]],[[12925,12925],"mapped",[51452,51032]],[[12926,12926],"mapped",[50864]],[[12927,12927],"valid",[],"NV8"],[[12928,12928],"mapped",[19968]],[[12929,12929],"mapped",[20108]],[[12930,12930],"mapped",[19977]],[[12931,12931],"mapped",[22235]],[[12932,12932],"mapped",[20116]],[[12933,12933],"mapped",[20845]],[[12934,12934],"mapped",[19971]],[[12935,12935],"mapped",[20843]],[[12936,12936],"mapped",[20061]],[[12937,12937],"mapped",[21313]],[[12938,12938],"mapped",[26376]],[[12939,12939],"mapped",[28779]],[[12940,12940],"mapped",[27700]],[[12941,12941],"mapped",[26408]],[[12942,12942],"mapped",[37329]],[[12943,12943],"mapped",[22303]],[[12944,12944],"mapped",[26085]],[[12945,12945],"mapped",[26666]],[[12946,12946],"mapped",[26377]],[[12947,12947],"mapped",[31038]],[[12948,12948],"mapped",[21517]],[[12949,12949],"mapped",[29305]],[[12950,12950],"mapped",[36001]],[[12951,12951],"mapped",[31069]],[[12952,12952],"mapped",[21172]],[[12953,12953],"mapped",[31192]],[[12954,12954],"mapped",[30007]],[[12955,12955],"mapped",[22899]],[[12956,12956],"mapped",[36969]],[[12957,12957],"mapped",[20778]],[[12958,12958],"mapped",[21360]],[[12959,12959],"mapped",[27880]],[[12960,12960],"mapped",[38917]],[[12961,12961],"mapped",[20241]],[[12962,12962],"mapped",[20889]],[[12963,12963],"mapped",[27491]],[[12964,12964],"mapped",[19978]],[[12965,12965],"mapped",[20013]],[[12966,12966],"mapped",[19979]],[[12967,12967],"mapped",[24038]],[[12968,12968],"mapped",[21491]],[[12969,12969],"mapped",[21307]],[[12970,12970],"mapped",[23447]],[[12971,12971],"mapped",[23398]],[[12972,12972],"mapped",[30435]],[[12973,12973],"mapped",[20225]],[[12974,12974],"mapped",[36039]],[[12975,12975],"mapped",[21332]],[[12976,12976],"mapped",[22812]],[[12977,12977],"mapped",[51,54]],[[12978,12978],"mapped",[51,55]],[[12979,12979],"mapped",[51,56]],[[12980,12980],"mapped",[51,57]],[[12981,12981],"mapped",[52,48]],[[12982,12982],"mapped",[52,49]],[[12983,12983],"mapped",[52,50]],[[12984,12984],"mapped",[52,51]],[[12985,12985],"mapped",[52,52]],[[12986,12986],"mapped",[52,53]],[[12987,12987],"mapped",[52,54]],[[12988,12988],"mapped",[52,55]],[[12989,12989],"mapped",[52,56]],[[12990,12990],"mapped",[52,57]],[[12991,12991],"mapped",[53,48]],[[12992,12992],"mapped",[49,26376]],[[12993,12993],"mapped",[50,26376]],[[12994,12994],"mapped",[51,26376]],[[12995,12995],"mapped",[52,26376]],[[12996,12996],"mapped",[53,26376]],[[12997,12997],"mapped",[54,26376]],[[12998,12998],"mapped",[55,26376]],[[12999,12999],"mapped",[56,26376]],[[13000,13000],"mapped",[57,26376]],[[13001,13001],"mapped",[49,48,26376]],[[13002,13002],"mapped",[49,49,26376]],[[13003,13003],"mapped",[49,50,26376]],[[13004,13004],"mapped",[104,103]],[[13005,13005],"mapped",[101,114,103]],[[13006,13006],"mapped",[101,118]],[[13007,13007],"mapped",[108,116,100]],[[13008,13008],"mapped",[12450]],[[13009,13009],"mapped",[12452]],[[13010,13010],"mapped",[12454]],[[13011,13011],"mapped",[12456]],[[13012,13012],"mapped",[12458]],[[13013,13013],"mapped",[12459]],[[13014,13014],"mapped",[12461]],[[13015,13015],"mapped",[12463]],[[13016,13016],"mapped",[12465]],[[13017,13017],"mapped",[12467]],[[13018,13018],"mapped",[12469]],[[13019,13019],"mapped",[12471]],[[13020,13020],"mapped",[12473]],[[13021,13021],"mapped",[12475]],[[13022,13022],"mapped",[12477]],[[13023,13023],"mapped",[12479]],[[13024,13024],"mapped",[12481]],[[13025,13025],"mapped",[12484]],[[13026,13026],"mapped",[12486]],[[13027,13027],"mapped",[12488]],[[13028,13028],"mapped",[12490]],[[13029,13029],"mapped",[12491]],[[13030,13030],"mapped",[12492]],[[13031,13031],"mapped",[12493]],[[13032,13032],"mapped",[12494]],[[13033,13033],"mapped",[12495]],[[13034,13034],"mapped",[12498]],[[13035,13035],"mapped",[12501]],[[13036,13036],"mapped",[12504]],[[13037,13037],"mapped",[12507]],[[13038,13038],"mapped",[12510]],[[13039,13039],"mapped",[12511]],[[13040,13040],"mapped",[12512]],[[13041,13041],"mapped",[12513]],[[13042,13042],"mapped",[12514]],[[13043,13043],"mapped",[12516]],[[13044,13044],"mapped",[12518]],[[13045,13045],"mapped",[12520]],[[13046,13046],"mapped",[12521]],[[13047,13047],"mapped",[12522]],[[13048,13048],"mapped",[12523]],[[13049,13049],"mapped",[12524]],[[13050,13050],"mapped",[12525]],[[13051,13051],"mapped",[12527]],[[13052,13052],"mapped",[12528]],[[13053,13053],"mapped",[12529]],[[13054,13054],"mapped",[12530]],[[13055,13055],"disallowed"],[[13056,13056],"mapped",[12450,12497,12540,12488]],[[13057,13057],"mapped",[12450,12523,12501,12449]],[[13058,13058],"mapped",[12450,12531,12506,12450]],[[13059,13059],"mapped",[12450,12540,12523]],[[13060,13060],"mapped",[12452,12491,12531,12464]],[[13061,13061],"mapped",[12452,12531,12481]],[[13062,13062],"mapped",[12454,12457,12531]],[[13063,13063],"mapped",[12456,12473,12463,12540,12489]],[[13064,13064],"mapped",[12456,12540,12459,12540]],[[13065,13065],"mapped",[12458,12531,12473]],[[13066,13066],"mapped",[12458,12540,12512]],[[13067,13067],"mapped",[12459,12452,12522]],[[13068,13068],"mapped",[12459,12521,12483,12488]],[[13069,13069],"mapped",[12459,12525,12522,12540]],[[13070,13070],"mapped",[12460,12525,12531]],[[13071,13071],"mapped",[12460,12531,12510]],[[13072,13072],"mapped",[12462,12460]],[[13073,13073],"mapped",[12462,12491,12540]],[[13074,13074],"mapped",[12461,12517,12522,12540]],[[13075,13075],"mapped",[12462,12523,12480,12540]],[[13076,13076],"mapped",[12461,12525]],[[13077,13077],"mapped",[12461,12525,12464,12521,12512]],[[13078,13078],"mapped",[12461,12525,12513,12540,12488,12523]],[[13079,13079],"mapped",[12461,12525,12527,12483,12488]],[[13080,13080],"mapped",[12464,12521,12512]],[[13081,13081],"mapped",[12464,12521,12512,12488,12531]],[[13082,13082],"mapped",[12463,12523,12476,12452,12525]],[[13083,13083],"mapped",[12463,12525,12540,12493]],[[13084,13084],"mapped",[12465,12540,12473]],[[13085,13085],"mapped",[12467,12523,12490]],[[13086,13086],"mapped",[12467,12540,12509]],[[13087,13087],"mapped",[12469,12452,12463,12523]],[[13088,13088],"mapped",[12469,12531,12481,12540,12512]],[[13089,13089],"mapped",[12471,12522,12531,12464]],[[13090,13090],"mapped",[12475,12531,12481]],[[13091,13091],"mapped",[12475,12531,12488]],[[13092,13092],"mapped",[12480,12540,12473]],[[13093,13093],"mapped",[12487,12471]],[[13094,13094],"mapped",[12489,12523]],[[13095,13095],"mapped",[12488,12531]],[[13096,13096],"mapped",[12490,12494]],[[13097,13097],"mapped",[12494,12483,12488]],[[13098,13098],"mapped",[12495,12452,12484]],[[13099,13099],"mapped",[12497,12540,12475,12531,12488]],[[13100,13100],"mapped",[12497,12540,12484]],[[13101,13101],"mapped",[12496,12540,12524,12523]],[[13102,13102],"mapped",[12500,12450,12473,12488,12523]],[[13103,13103],"mapped",[12500,12463,12523]],[[13104,13104],"mapped",[12500,12467]],[[13105,13105],"mapped",[12499,12523]],[[13106,13106],"mapped",[12501,12449,12521,12483,12489]],[[13107,13107],"mapped",[12501,12451,12540,12488]],[[13108,13108],"mapped",[12502,12483,12471,12455,12523]],[[13109,13109],"mapped",[12501,12521,12531]],[[13110,13110],"mapped",[12504,12463,12479,12540,12523]],[[13111,13111],"mapped",[12506,12477]],[[13112,13112],"mapped",[12506,12491,12498]],[[13113,13113],"mapped",[12504,12523,12484]],[[13114,13114],"mapped",[12506,12531,12473]],[[13115,13115],"mapped",[12506,12540,12472]],[[13116,13116],"mapped",[12505,12540,12479]],[[13117,13117],"mapped",[12509,12452,12531,12488]],[[13118,13118],"mapped",[12508,12523,12488]],[[13119,13119],"mapped",[12507,12531]],[[13120,13120],"mapped",[12509,12531,12489]],[[13121,13121],"mapped",[12507,12540,12523]],[[13122,13122],"mapped",[12507,12540,12531]],[[13123,13123],"mapped",[12510,12452,12463,12525]],[[13124,13124],"mapped",[12510,12452,12523]],[[13125,13125],"mapped",[12510,12483,12495]],[[13126,13126],"mapped",[12510,12523,12463]],[[13127,13127],"mapped",[12510,12531,12471,12519,12531]],[[13128,13128],"mapped",[12511,12463,12525,12531]],[[13129,13129],"mapped",[12511,12522]],[[13130,13130],"mapped",[12511,12522,12496,12540,12523]],[[13131,13131],"mapped",[12513,12460]],[[13132,13132],"mapped",[12513,12460,12488,12531]],[[13133,13133],"mapped",[12513,12540,12488,12523]],[[13134,13134],"mapped",[12516,12540,12489]],[[13135,13135],"mapped",[12516,12540,12523]],[[13136,13136],"mapped",[12518,12450,12531]],[[13137,13137],"mapped",[12522,12483,12488,12523]],[[13138,13138],"mapped",[12522,12521]],[[13139,13139],"mapped",[12523,12500,12540]],[[13140,13140],"mapped",[12523,12540,12502,12523]],[[13141,13141],"mapped",[12524,12512]],[[13142,13142],"mapped",[12524,12531,12488,12466,12531]],[[13143,13143],"mapped",[12527,12483,12488]],[[13144,13144],"mapped",[48,28857]],[[13145,13145],"mapped",[49,28857]],[[13146,13146],"mapped",[50,28857]],[[13147,13147],"mapped",[51,28857]],[[13148,13148],"mapped",[52,28857]],[[13149,13149],"mapped",[53,28857]],[[13150,13150],"mapped",[54,28857]],[[13151,13151],"mapped",[55,28857]],[[13152,13152],"mapped",[56,28857]],[[13153,13153],"mapped",[57,28857]],[[13154,13154],"mapped",[49,48,28857]],[[13155,13155],"mapped",[49,49,28857]],[[13156,13156],"mapped",[49,50,28857]],[[13157,13157],"mapped",[49,51,28857]],[[13158,13158],"mapped",[49,52,28857]],[[13159,13159],"mapped",[49,53,28857]],[[13160,13160],"mapped",[49,54,28857]],[[13161,13161],"mapped",[49,55,28857]],[[13162,13162],"mapped",[49,56,28857]],[[13163,13163],"mapped",[49,57,28857]],[[13164,13164],"mapped",[50,48,28857]],[[13165,13165],"mapped",[50,49,28857]],[[13166,13166],"mapped",[50,50,28857]],[[13167,13167],"mapped",[50,51,28857]],[[13168,13168],"mapped",[50,52,28857]],[[13169,13169],"mapped",[104,112,97]],[[13170,13170],"mapped",[100,97]],[[13171,13171],"mapped",[97,117]],[[13172,13172],"mapped",[98,97,114]],[[13173,13173],"mapped",[111,118]],[[13174,13174],"mapped",[112,99]],[[13175,13175],"mapped",[100,109]],[[13176,13176],"mapped",[100,109,50]],[[13177,13177],"mapped",[100,109,51]],[[13178,13178],"mapped",[105,117]],[[13179,13179],"mapped",[24179,25104]],[[13180,13180],"mapped",[26157,21644]],[[13181,13181],"mapped",[22823,27491]],[[13182,13182],"mapped",[26126,27835]],[[13183,13183],"mapped",[26666,24335,20250,31038]],[[13184,13184],"mapped",[112,97]],[[13185,13185],"mapped",[110,97]],[[13186,13186],"mapped",[956,97]],[[13187,13187],"mapped",[109,97]],[[13188,13188],"mapped",[107,97]],[[13189,13189],"mapped",[107,98]],[[13190,13190],"mapped",[109,98]],[[13191,13191],"mapped",[103,98]],[[13192,13192],"mapped",[99,97,108]],[[13193,13193],"mapped",[107,99,97,108]],[[13194,13194],"mapped",[112,102]],[[13195,13195],"mapped",[110,102]],[[13196,13196],"mapped",[956,102]],[[13197,13197],"mapped",[956,103]],[[13198,13198],"mapped",[109,103]],[[13199,13199],"mapped",[107,103]],[[13200,13200],"mapped",[104,122]],[[13201,13201],"mapped",[107,104,122]],[[13202,13202],"mapped",[109,104,122]],[[13203,13203],"mapped",[103,104,122]],[[13204,13204],"mapped",[116,104,122]],[[13205,13205],"mapped",[956,108]],[[13206,13206],"mapped",[109,108]],[[13207,13207],"mapped",[100,108]],[[13208,13208],"mapped",[107,108]],[[13209,13209],"mapped",[102,109]],[[13210,13210],"mapped",[110,109]],[[13211,13211],"mapped",[956,109]],[[13212,13212],"mapped",[109,109]],[[13213,13213],"mapped",[99,109]],[[13214,13214],"mapped",[107,109]],[[13215,13215],"mapped",[109,109,50]],[[13216,13216],"mapped",[99,109,50]],[[13217,13217],"mapped",[109,50]],[[13218,13218],"mapped",[107,109,50]],[[13219,13219],"mapped",[109,109,51]],[[13220,13220],"mapped",[99,109,51]],[[13221,13221],"mapped",[109,51]],[[13222,13222],"mapped",[107,109,51]],[[13223,13223],"mapped",[109,8725,115]],[[13224,13224],"mapped",[109,8725,115,50]],[[13225,13225],"mapped",[112,97]],[[13226,13226],"mapped",[107,112,97]],[[13227,13227],"mapped",[109,112,97]],[[13228,13228],"mapped",[103,112,97]],[[13229,13229],"mapped",[114,97,100]],[[13230,13230],"mapped",[114,97,100,8725,115]],[[13231,13231],"mapped",[114,97,100,8725,115,50]],[[13232,13232],"mapped",[112,115]],[[13233,13233],"mapped",[110,115]],[[13234,13234],"mapped",[956,115]],[[13235,13235],"mapped",[109,115]],[[13236,13236],"mapped",[112,118]],[[13237,13237],"mapped",[110,118]],[[13238,13238],"mapped",[956,118]],[[13239,13239],"mapped",[109,118]],[[13240,13240],"mapped",[107,118]],[[13241,13241],"mapped",[109,118]],[[13242,13242],"mapped",[112,119]],[[13243,13243],"mapped",[110,119]],[[13244,13244],"mapped",[956,119]],[[13245,13245],"mapped",[109,119]],[[13246,13246],"mapped",[107,119]],[[13247,13247],"mapped",[109,119]],[[13248,13248],"mapped",[107,969]],[[13249,13249],"mapped",[109,969]],[[13250,13250],"disallowed"],[[13251,13251],"mapped",[98,113]],[[13252,13252],"mapped",[99,99]],[[13253,13253],"mapped",[99,100]],[[13254,13254],"mapped",[99,8725,107,103]],[[13255,13255],"disallowed"],[[13256,13256],"mapped",[100,98]],[[13257,13257],"mapped",[103,121]],[[13258,13258],"mapped",[104,97]],[[13259,13259],"mapped",[104,112]],[[13260,13260],"mapped",[105,110]],[[13261,13261],"mapped",[107,107]],[[13262,13262],"mapped",[107,109]],[[13263,13263],"mapped",[107,116]],[[13264,13264],"mapped",[108,109]],[[13265,13265],"mapped",[108,110]],[[13266,13266],"mapped",[108,111,103]],[[13267,13267],"mapped",[108,120]],[[13268,13268],"mapped",[109,98]],[[13269,13269],"mapped",[109,105,108]],[[13270,13270],"mapped",[109,111,108]],[[13271,13271],"mapped",[112,104]],[[13272,13272],"disallowed"],[[13273,13273],"mapped",[112,112,109]],[[13274,13274],"mapped",[112,114]],[[13275,13275],"mapped",[115,114]],[[13276,13276],"mapped",[115,118]],[[13277,13277],"mapped",[119,98]],[[13278,13278],"mapped",[118,8725,109]],[[13279,13279],"mapped",[97,8725,109]],[[13280,13280],"mapped",[49,26085]],[[13281,13281],"mapped",[50,26085]],[[13282,13282],"mapped",[51,26085]],[[13283,13283],"mapped",[52,26085]],[[13284,13284],"mapped",[53,26085]],[[13285,13285],"mapped",[54,26085]],[[13286,13286],"mapped",[55,26085]],[[13287,13287],"mapped",[56,26085]],[[13288,13288],"mapped",[57,26085]],[[13289,13289],"mapped",[49,48,26085]],[[13290,13290],"mapped",[49,49,26085]],[[13291,13291],"mapped",[49,50,26085]],[[13292,13292],"mapped",[49,51,26085]],[[13293,13293],"mapped",[49,52,26085]],[[13294,13294],"mapped",[49,53,26085]],[[13295,13295],"mapped",[49,54,26085]],[[13296,13296],"mapped",[49,55,26085]],[[13297,13297],"mapped",[49,56,26085]],[[13298,13298],"mapped",[49,57,26085]],[[13299,13299],"mapped",[50,48,26085]],[[13300,13300],"mapped",[50,49,26085]],[[13301,13301],"mapped",[50,50,26085]],[[13302,13302],"mapped",[50,51,26085]],[[13303,13303],"mapped",[50,52,26085]],[[13304,13304],"mapped",[50,53,26085]],[[13305,13305],"mapped",[50,54,26085]],[[13306,13306],"mapped",[50,55,26085]],[[13307,13307],"mapped",[50,56,26085]],[[13308,13308],"mapped",[50,57,26085]],[[13309,13309],"mapped",[51,48,26085]],[[13310,13310],"mapped",[51,49,26085]],[[13311,13311],"mapped",[103,97,108]],[[13312,19893],"valid"],[[19894,19903],"disallowed"],[[19904,19967],"valid",[],"NV8"],[[19968,40869],"valid"],[[40870,40891],"valid"],[[40892,40899],"valid"],[[40900,40907],"valid"],[[40908,40908],"valid"],[[40909,40917],"valid"],[[40918,40959],"disallowed"],[[40960,42124],"valid"],[[42125,42127],"disallowed"],[[42128,42145],"valid",[],"NV8"],[[42146,42147],"valid",[],"NV8"],[[42148,42163],"valid",[],"NV8"],[[42164,42164],"valid",[],"NV8"],[[42165,42176],"valid",[],"NV8"],[[42177,42177],"valid",[],"NV8"],[[42178,42180],"valid",[],"NV8"],[[42181,42181],"valid",[],"NV8"],[[42182,42182],"valid",[],"NV8"],[[42183,42191],"disallowed"],[[42192,42237],"valid"],[[42238,42239],"valid",[],"NV8"],[[42240,42508],"valid"],[[42509,42511],"valid",[],"NV8"],[[42512,42539],"valid"],[[42540,42559],"disallowed"],[[42560,42560],"mapped",[42561]],[[42561,42561],"valid"],[[42562,42562],"mapped",[42563]],[[42563,42563],"valid"],[[42564,42564],"mapped",[42565]],[[42565,42565],"valid"],[[42566,42566],"mapped",[42567]],[[42567,42567],"valid"],[[42568,42568],"mapped",[42569]],[[42569,42569],"valid"],[[42570,42570],"mapped",[42571]],[[42571,42571],"valid"],[[42572,42572],"mapped",[42573]],[[42573,42573],"valid"],[[42574,42574],"mapped",[42575]],[[42575,42575],"valid"],[[42576,42576],"mapped",[42577]],[[42577,42577],"valid"],[[42578,42578],"mapped",[42579]],[[42579,42579],"valid"],[[42580,42580],"mapped",[42581]],[[42581,42581],"valid"],[[42582,42582],"mapped",[42583]],[[42583,42583],"valid"],[[42584,42584],"mapped",[42585]],[[42585,42585],"valid"],[[42586,42586],"mapped",[42587]],[[42587,42587],"valid"],[[42588,42588],"mapped",[42589]],[[42589,42589],"valid"],[[42590,42590],"mapped",[42591]],[[42591,42591],"valid"],[[42592,42592],"mapped",[42593]],[[42593,42593],"valid"],[[42594,42594],"mapped",[42595]],[[42595,42595],"valid"],[[42596,42596],"mapped",[42597]],[[42597,42597],"valid"],[[42598,42598],"mapped",[42599]],[[42599,42599],"valid"],[[42600,42600],"mapped",[42601]],[[42601,42601],"valid"],[[42602,42602],"mapped",[42603]],[[42603,42603],"valid"],[[42604,42604],"mapped",[42605]],[[42605,42607],"valid"],[[42608,42611],"valid",[],"NV8"],[[42612,42619],"valid"],[[42620,42621],"valid"],[[42622,42622],"valid",[],"NV8"],[[42623,42623],"valid"],[[42624,42624],"mapped",[42625]],[[42625,42625],"valid"],[[42626,42626],"mapped",[42627]],[[42627,42627],"valid"],[[42628,42628],"mapped",[42629]],[[42629,42629],"valid"],[[42630,42630],"mapped",[42631]],[[42631,42631],"valid"],[[42632,42632],"mapped",[42633]],[[42633,42633],"valid"],[[42634,42634],"mapped",[42635]],[[42635,42635],"valid"],[[42636,42636],"mapped",[42637]],[[42637,42637],"valid"],[[42638,42638],"mapped",[42639]],[[42639,42639],"valid"],[[42640,42640],"mapped",[42641]],[[42641,42641],"valid"],[[42642,42642],"mapped",[42643]],[[42643,42643],"valid"],[[42644,42644],"mapped",[42645]],[[42645,42645],"valid"],[[42646,42646],"mapped",[42647]],[[42647,42647],"valid"],[[42648,42648],"mapped",[42649]],[[42649,42649],"valid"],[[42650,42650],"mapped",[42651]],[[42651,42651],"valid"],[[42652,42652],"mapped",[1098]],[[42653,42653],"mapped",[1100]],[[42654,42654],"valid"],[[42655,42655],"valid"],[[42656,42725],"valid"],[[42726,42735],"valid",[],"NV8"],[[42736,42737],"valid"],[[42738,42743],"valid",[],"NV8"],[[42744,42751],"disallowed"],[[42752,42774],"valid",[],"NV8"],[[42775,42778],"valid"],[[42779,42783],"valid"],[[42784,42785],"valid",[],"NV8"],[[42786,42786],"mapped",[42787]],[[42787,42787],"valid"],[[42788,42788],"mapped",[42789]],[[42789,42789],"valid"],[[42790,42790],"mapped",[42791]],[[42791,42791],"valid"],[[42792,42792],"mapped",[42793]],[[42793,42793],"valid"],[[42794,42794],"mapped",[42795]],[[42795,42795],"valid"],[[42796,42796],"mapped",[42797]],[[42797,42797],"valid"],[[42798,42798],"mapped",[42799]],[[42799,42801],"valid"],[[42802,42802],"mapped",[42803]],[[42803,42803],"valid"],[[42804,42804],"mapped",[42805]],[[42805,42805],"valid"],[[42806,42806],"mapped",[42807]],[[42807,42807],"valid"],[[42808,42808],"mapped",[42809]],[[42809,42809],"valid"],[[42810,42810],"mapped",[42811]],[[42811,42811],"valid"],[[42812,42812],"mapped",[42813]],[[42813,42813],"valid"],[[42814,42814],"mapped",[42815]],[[42815,42815],"valid"],[[42816,42816],"mapped",[42817]],[[42817,42817],"valid"],[[42818,42818],"mapped",[42819]],[[42819,42819],"valid"],[[42820,42820],"mapped",[42821]],[[42821,42821],"valid"],[[42822,42822],"mapped",[42823]],[[42823,42823],"valid"],[[42824,42824],"mapped",[42825]],[[42825,42825],"valid"],[[42826,42826],"mapped",[42827]],[[42827,42827],"valid"],[[42828,42828],"mapped",[42829]],[[42829,42829],"valid"],[[42830,42830],"mapped",[42831]],[[42831,42831],"valid"],[[42832,42832],"mapped",[42833]],[[42833,42833],"valid"],[[42834,42834],"mapped",[42835]],[[42835,42835],"valid"],[[42836,42836],"mapped",[42837]],[[42837,42837],"valid"],[[42838,42838],"mapped",[42839]],[[42839,42839],"valid"],[[42840,42840],"mapped",[42841]],[[42841,42841],"valid"],[[42842,42842],"mapped",[42843]],[[42843,42843],"valid"],[[42844,42844],"mapped",[42845]],[[42845,42845],"valid"],[[42846,42846],"mapped",[42847]],[[42847,42847],"valid"],[[42848,42848],"mapped",[42849]],[[42849,42849],"valid"],[[42850,42850],"mapped",[42851]],[[42851,42851],"valid"],[[42852,42852],"mapped",[42853]],[[42853,42853],"valid"],[[42854,42854],"mapped",[42855]],[[42855,42855],"valid"],[[42856,42856],"mapped",[42857]],[[42857,42857],"valid"],[[42858,42858],"mapped",[42859]],[[42859,42859],"valid"],[[42860,42860],"mapped",[42861]],[[42861,42861],"valid"],[[42862,42862],"mapped",[42863]],[[42863,42863],"valid"],[[42864,42864],"mapped",[42863]],[[42865,42872],"valid"],[[42873,42873],"mapped",[42874]],[[42874,42874],"valid"],[[42875,42875],"mapped",[42876]],[[42876,42876],"valid"],[[42877,42877],"mapped",[7545]],[[42878,42878],"mapped",[42879]],[[42879,42879],"valid"],[[42880,42880],"mapped",[42881]],[[42881,42881],"valid"],[[42882,42882],"mapped",[42883]],[[42883,42883],"valid"],[[42884,42884],"mapped",[42885]],[[42885,42885],"valid"],[[42886,42886],"mapped",[42887]],[[42887,42888],"valid"],[[42889,42890],"valid",[],"NV8"],[[42891,42891],"mapped",[42892]],[[42892,42892],"valid"],[[42893,42893],"mapped",[613]],[[42894,42894],"valid"],[[42895,42895],"valid"],[[42896,42896],"mapped",[42897]],[[42897,42897],"valid"],[[42898,42898],"mapped",[42899]],[[42899,42899],"valid"],[[42900,42901],"valid"],[[42902,42902],"mapped",[42903]],[[42903,42903],"valid"],[[42904,42904],"mapped",[42905]],[[42905,42905],"valid"],[[42906,42906],"mapped",[42907]],[[42907,42907],"valid"],[[42908,42908],"mapped",[42909]],[[42909,42909],"valid"],[[42910,42910],"mapped",[42911]],[[42911,42911],"valid"],[[42912,42912],"mapped",[42913]],[[42913,42913],"valid"],[[42914,42914],"mapped",[42915]],[[42915,42915],"valid"],[[42916,42916],"mapped",[42917]],[[42917,42917],"valid"],[[42918,42918],"mapped",[42919]],[[42919,42919],"valid"],[[42920,42920],"mapped",[42921]],[[42921,42921],"valid"],[[42922,42922],"mapped",[614]],[[42923,42923],"mapped",[604]],[[42924,42924],"mapped",[609]],[[42925,42925],"mapped",[620]],[[42926,42927],"disallowed"],[[42928,42928],"mapped",[670]],[[42929,42929],"mapped",[647]],[[42930,42930],"mapped",[669]],[[42931,42931],"mapped",[43859]],[[42932,42932],"mapped",[42933]],[[42933,42933],"valid"],[[42934,42934],"mapped",[42935]],[[42935,42935],"valid"],[[42936,42998],"disallowed"],[[42999,42999],"valid"],[[43000,43000],"mapped",[295]],[[43001,43001],"mapped",[339]],[[43002,43002],"valid"],[[43003,43007],"valid"],[[43008,43047],"valid"],[[43048,43051],"valid",[],"NV8"],[[43052,43055],"disallowed"],[[43056,43065],"valid",[],"NV8"],[[43066,43071],"disallowed"],[[43072,43123],"valid"],[[43124,43127],"valid",[],"NV8"],[[43128,43135],"disallowed"],[[43136,43204],"valid"],[[43205,43213],"disallowed"],[[43214,43215],"valid",[],"NV8"],[[43216,43225],"valid"],[[43226,43231],"disallowed"],[[43232,43255],"valid"],[[43256,43258],"valid",[],"NV8"],[[43259,43259],"valid"],[[43260,43260],"valid",[],"NV8"],[[43261,43261],"valid"],[[43262,43263],"disallowed"],[[43264,43309],"valid"],[[43310,43311],"valid",[],"NV8"],[[43312,43347],"valid"],[[43348,43358],"disallowed"],[[43359,43359],"valid",[],"NV8"],[[43360,43388],"valid",[],"NV8"],[[43389,43391],"disallowed"],[[43392,43456],"valid"],[[43457,43469],"valid",[],"NV8"],[[43470,43470],"disallowed"],[[43471,43481],"valid"],[[43482,43485],"disallowed"],[[43486,43487],"valid",[],"NV8"],[[43488,43518],"valid"],[[43519,43519],"disallowed"],[[43520,43574],"valid"],[[43575,43583],"disallowed"],[[43584,43597],"valid"],[[43598,43599],"disallowed"],[[43600,43609],"valid"],[[43610,43611],"disallowed"],[[43612,43615],"valid",[],"NV8"],[[43616,43638],"valid"],[[43639,43641],"valid",[],"NV8"],[[43642,43643],"valid"],[[43644,43647],"valid"],[[43648,43714],"valid"],[[43715,43738],"disallowed"],[[43739,43741],"valid"],[[43742,43743],"valid",[],"NV8"],[[43744,43759],"valid"],[[43760,43761],"valid",[],"NV8"],[[43762,43766],"valid"],[[43767,43776],"disallowed"],[[43777,43782],"valid"],[[43783,43784],"disallowed"],[[43785,43790],"valid"],[[43791,43792],"disallowed"],[[43793,43798],"valid"],[[43799,43807],"disallowed"],[[43808,43814],"valid"],[[43815,43815],"disallowed"],[[43816,43822],"valid"],[[43823,43823],"disallowed"],[[43824,43866],"valid"],[[43867,43867],"valid",[],"NV8"],[[43868,43868],"mapped",[42791]],[[43869,43869],"mapped",[43831]],[[43870,43870],"mapped",[619]],[[43871,43871],"mapped",[43858]],[[43872,43875],"valid"],[[43876,43877],"valid"],[[43878,43887],"disallowed"],[[43888,43888],"mapped",[5024]],[[43889,43889],"mapped",[5025]],[[43890,43890],"mapped",[5026]],[[43891,43891],"mapped",[5027]],[[43892,43892],"mapped",[5028]],[[43893,43893],"mapped",[5029]],[[43894,43894],"mapped",[5030]],[[43895,43895],"mapped",[5031]],[[43896,43896],"mapped",[5032]],[[43897,43897],"mapped",[5033]],[[43898,43898],"mapped",[5034]],[[43899,43899],"mapped",[5035]],[[43900,43900],"mapped",[5036]],[[43901,43901],"mapped",[5037]],[[43902,43902],"mapped",[5038]],[[43903,43903],"mapped",[5039]],[[43904,43904],"mapped",[5040]],[[43905,43905],"mapped",[5041]],[[43906,43906],"mapped",[5042]],[[43907,43907],"mapped",[5043]],[[43908,43908],"mapped",[5044]],[[43909,43909],"mapped",[5045]],[[43910,43910],"mapped",[5046]],[[43911,43911],"mapped",[5047]],[[43912,43912],"mapped",[5048]],[[43913,43913],"mapped",[5049]],[[43914,43914],"mapped",[5050]],[[43915,43915],"mapped",[5051]],[[43916,43916],"mapped",[5052]],[[43917,43917],"mapped",[5053]],[[43918,43918],"mapped",[5054]],[[43919,43919],"mapped",[5055]],[[43920,43920],"mapped",[5056]],[[43921,43921],"mapped",[5057]],[[43922,43922],"mapped",[5058]],[[43923,43923],"mapped",[5059]],[[43924,43924],"mapped",[5060]],[[43925,43925],"mapped",[5061]],[[43926,43926],"mapped",[5062]],[[43927,43927],"mapped",[5063]],[[43928,43928],"mapped",[5064]],[[43929,43929],"mapped",[5065]],[[43930,43930],"mapped",[5066]],[[43931,43931],"mapped",[5067]],[[43932,43932],"mapped",[5068]],[[43933,43933],"mapped",[5069]],[[43934,43934],"mapped",[5070]],[[43935,43935],"mapped",[5071]],[[43936,43936],"mapped",[5072]],[[43937,43937],"mapped",[5073]],[[43938,43938],"mapped",[5074]],[[43939,43939],"mapped",[5075]],[[43940,43940],"mapped",[5076]],[[43941,43941],"mapped",[5077]],[[43942,43942],"mapped",[5078]],[[43943,43943],"mapped",[5079]],[[43944,43944],"mapped",[5080]],[[43945,43945],"mapped",[5081]],[[43946,43946],"mapped",[5082]],[[43947,43947],"mapped",[5083]],[[43948,43948],"mapped",[5084]],[[43949,43949],"mapped",[5085]],[[43950,43950],"mapped",[5086]],[[43951,43951],"mapped",[5087]],[[43952,43952],"mapped",[5088]],[[43953,43953],"mapped",[5089]],[[43954,43954],"mapped",[5090]],[[43955,43955],"mapped",[5091]],[[43956,43956],"mapped",[5092]],[[43957,43957],"mapped",[5093]],[[43958,43958],"mapped",[5094]],[[43959,43959],"mapped",[5095]],[[43960,43960],"mapped",[5096]],[[43961,43961],"mapped",[5097]],[[43962,43962],"mapped",[5098]],[[43963,43963],"mapped",[5099]],[[43964,43964],"mapped",[5100]],[[43965,43965],"mapped",[5101]],[[43966,43966],"mapped",[5102]],[[43967,43967],"mapped",[5103]],[[43968,44010],"valid"],[[44011,44011],"valid",[],"NV8"],[[44012,44013],"valid"],[[44014,44015],"disallowed"],[[44016,44025],"valid"],[[44026,44031],"disallowed"],[[44032,55203],"valid"],[[55204,55215],"disallowed"],[[55216,55238],"valid",[],"NV8"],[[55239,55242],"disallowed"],[[55243,55291],"valid",[],"NV8"],[[55292,55295],"disallowed"],[[55296,57343],"disallowed"],[[57344,63743],"disallowed"],[[63744,63744],"mapped",[35912]],[[63745,63745],"mapped",[26356]],[[63746,63746],"mapped",[36554]],[[63747,63747],"mapped",[36040]],[[63748,63748],"mapped",[28369]],[[63749,63749],"mapped",[20018]],[[63750,63750],"mapped",[21477]],[[63751,63752],"mapped",[40860]],[[63753,63753],"mapped",[22865]],[[63754,63754],"mapped",[37329]],[[63755,63755],"mapped",[21895]],[[63756,63756],"mapped",[22856]],[[63757,63757],"mapped",[25078]],[[63758,63758],"mapped",[30313]],[[63759,63759],"mapped",[32645]],[[63760,63760],"mapped",[34367]],[[63761,63761],"mapped",[34746]],[[63762,63762],"mapped",[35064]],[[63763,63763],"mapped",[37007]],[[63764,63764],"mapped",[27138]],[[63765,63765],"mapped",[27931]],[[63766,63766],"mapped",[28889]],[[63767,63767],"mapped",[29662]],[[63768,63768],"mapped",[33853]],[[63769,63769],"mapped",[37226]],[[63770,63770],"mapped",[39409]],[[63771,63771],"mapped",[20098]],[[63772,63772],"mapped",[21365]],[[63773,63773],"mapped",[27396]],[[63774,63774],"mapped",[29211]],[[63775,63775],"mapped",[34349]],[[63776,63776],"mapped",[40478]],[[63777,63777],"mapped",[23888]],[[63778,63778],"mapped",[28651]],[[63779,63779],"mapped",[34253]],[[63780,63780],"mapped",[35172]],[[63781,63781],"mapped",[25289]],[[63782,63782],"mapped",[33240]],[[63783,63783],"mapped",[34847]],[[63784,63784],"mapped",[24266]],[[63785,63785],"mapped",[26391]],[[63786,63786],"mapped",[28010]],[[63787,63787],"mapped",[29436]],[[63788,63788],"mapped",[37070]],[[63789,63789],"mapped",[20358]],[[63790,63790],"mapped",[20919]],[[63791,63791],"mapped",[21214]],[[63792,63792],"mapped",[25796]],[[63793,63793],"mapped",[27347]],[[63794,63794],"mapped",[29200]],[[63795,63795],"mapped",[30439]],[[63796,63796],"mapped",[32769]],[[63797,63797],"mapped",[34310]],[[63798,63798],"mapped",[34396]],[[63799,63799],"mapped",[36335]],[[63800,63800],"mapped",[38706]],[[63801,63801],"mapped",[39791]],[[63802,63802],"mapped",[40442]],[[63803,63803],"mapped",[30860]],[[63804,63804],"mapped",[31103]],[[63805,63805],"mapped",[32160]],[[63806,63806],"mapped",[33737]],[[63807,63807],"mapped",[37636]],[[63808,63808],"mapped",[40575]],[[63809,63809],"mapped",[35542]],[[63810,63810],"mapped",[22751]],[[63811,63811],"mapped",[24324]],[[63812,63812],"mapped",[31840]],[[63813,63813],"mapped",[32894]],[[63814,63814],"mapped",[29282]],[[63815,63815],"mapped",[30922]],[[63816,63816],"mapped",[36034]],[[63817,63817],"mapped",[38647]],[[63818,63818],"mapped",[22744]],[[63819,63819],"mapped",[23650]],[[63820,63820],"mapped",[27155]],[[63821,63821],"mapped",[28122]],[[63822,63822],"mapped",[28431]],[[63823,63823],"mapped",[32047]],[[63824,63824],"mapped",[32311]],[[63825,63825],"mapped",[38475]],[[63826,63826],"mapped",[21202]],[[63827,63827],"mapped",[32907]],[[63828,63828],"mapped",[20956]],[[63829,63829],"mapped",[20940]],[[63830,63830],"mapped",[31260]],[[63831,63831],"mapped",[32190]],[[63832,63832],"mapped",[33777]],[[63833,63833],"mapped",[38517]],[[63834,63834],"mapped",[35712]],[[63835,63835],"mapped",[25295]],[[63836,63836],"mapped",[27138]],[[63837,63837],"mapped",[35582]],[[63838,63838],"mapped",[20025]],[[63839,63839],"mapped",[23527]],[[63840,63840],"mapped",[24594]],[[63841,63841],"mapped",[29575]],[[63842,63842],"mapped",[30064]],[[63843,63843],"mapped",[21271]],[[63844,63844],"mapped",[30971]],[[63845,63845],"mapped",[20415]],[[63846,63846],"mapped",[24489]],[[63847,63847],"mapped",[19981]],[[63848,63848],"mapped",[27852]],[[63849,63849],"mapped",[25976]],[[63850,63850],"mapped",[32034]],[[63851,63851],"mapped",[21443]],[[63852,63852],"mapped",[22622]],[[63853,63853],"mapped",[30465]],[[63854,63854],"mapped",[33865]],[[63855,63855],"mapped",[35498]],[[63856,63856],"mapped",[27578]],[[63857,63857],"mapped",[36784]],[[63858,63858],"mapped",[27784]],[[63859,63859],"mapped",[25342]],[[63860,63860],"mapped",[33509]],[[63861,63861],"mapped",[25504]],[[63862,63862],"mapped",[30053]],[[63863,63863],"mapped",[20142]],[[63864,63864],"mapped",[20841]],[[63865,63865],"mapped",[20937]],[[63866,63866],"mapped",[26753]],[[63867,63867],"mapped",[31975]],[[63868,63868],"mapped",[33391]],[[63869,63869],"mapped",[35538]],[[63870,63870],"mapped",[37327]],[[63871,63871],"mapped",[21237]],[[63872,63872],"mapped",[21570]],[[63873,63873],"mapped",[22899]],[[63874,63874],"mapped",[24300]],[[63875,63875],"mapped",[26053]],[[63876,63876],"mapped",[28670]],[[63877,63877],"mapped",[31018]],[[63878,63878],"mapped",[38317]],[[63879,63879],"mapped",[39530]],[[63880,63880],"mapped",[40599]],[[63881,63881],"mapped",[40654]],[[63882,63882],"mapped",[21147]],[[63883,63883],"mapped",[26310]],[[63884,63884],"mapped",[27511]],[[63885,63885],"mapped",[36706]],[[63886,63886],"mapped",[24180]],[[63887,63887],"mapped",[24976]],[[63888,63888],"mapped",[25088]],[[63889,63889],"mapped",[25754]],[[63890,63890],"mapped",[28451]],[[63891,63891],"mapped",[29001]],[[63892,63892],"mapped",[29833]],[[63893,63893],"mapped",[31178]],[[63894,63894],"mapped",[32244]],[[63895,63895],"mapped",[32879]],[[63896,63896],"mapped",[36646]],[[63897,63897],"mapped",[34030]],[[63898,63898],"mapped",[36899]],[[63899,63899],"mapped",[37706]],[[63900,63900],"mapped",[21015]],[[63901,63901],"mapped",[21155]],[[63902,63902],"mapped",[21693]],[[63903,63903],"mapped",[28872]],[[63904,63904],"mapped",[35010]],[[63905,63905],"mapped",[35498]],[[63906,63906],"mapped",[24265]],[[63907,63907],"mapped",[24565]],[[63908,63908],"mapped",[25467]],[[63909,63909],"mapped",[27566]],[[63910,63910],"mapped",[31806]],[[63911,63911],"mapped",[29557]],[[63912,63912],"mapped",[20196]],[[63913,63913],"mapped",[22265]],[[63914,63914],"mapped",[23527]],[[63915,63915],"mapped",[23994]],[[63916,63916],"mapped",[24604]],[[63917,63917],"mapped",[29618]],[[63918,63918],"mapped",[29801]],[[63919,63919],"mapped",[32666]],[[63920,63920],"mapped",[32838]],[[63921,63921],"mapped",[37428]],[[63922,63922],"mapped",[38646]],[[63923,63923],"mapped",[38728]],[[63924,63924],"mapped",[38936]],[[63925,63925],"mapped",[20363]],[[63926,63926],"mapped",[31150]],[[63927,63927],"mapped",[37300]],[[63928,63928],"mapped",[38584]],[[63929,63929],"mapped",[24801]],[[63930,63930],"mapped",[20102]],[[63931,63931],"mapped",[20698]],[[63932,63932],"mapped",[23534]],[[63933,63933],"mapped",[23615]],[[63934,63934],"mapped",[26009]],[[63935,63935],"mapped",[27138]],[[63936,63936],"mapped",[29134]],[[63937,63937],"mapped",[30274]],[[63938,63938],"mapped",[34044]],[[63939,63939],"mapped",[36988]],[[63940,63940],"mapped",[40845]],[[63941,63941],"mapped",[26248]],[[63942,63942],"mapped",[38446]],[[63943,63943],"mapped",[21129]],[[63944,63944],"mapped",[26491]],[[63945,63945],"mapped",[26611]],[[63946,63946],"mapped",[27969]],[[63947,63947],"mapped",[28316]],[[63948,63948],"mapped",[29705]],[[63949,63949],"mapped",[30041]],[[63950,63950],"mapped",[30827]],[[63951,63951],"mapped",[32016]],[[63952,63952],"mapped",[39006]],[[63953,63953],"mapped",[20845]],[[63954,63954],"mapped",[25134]],[[63955,63955],"mapped",[38520]],[[63956,63956],"mapped",[20523]],[[63957,63957],"mapped",[23833]],[[63958,63958],"mapped",[28138]],[[63959,63959],"mapped",[36650]],[[63960,63960],"mapped",[24459]],[[63961,63961],"mapped",[24900]],[[63962,63962],"mapped",[26647]],[[63963,63963],"mapped",[29575]],[[63964,63964],"mapped",[38534]],[[63965,63965],"mapped",[21033]],[[63966,63966],"mapped",[21519]],[[63967,63967],"mapped",[23653]],[[63968,63968],"mapped",[26131]],[[63969,63969],"mapped",[26446]],[[63970,63970],"mapped",[26792]],[[63971,63971],"mapped",[27877]],[[63972,63972],"mapped",[29702]],[[63973,63973],"mapped",[30178]],[[63974,63974],"mapped",[32633]],[[63975,63975],"mapped",[35023]],[[63976,63976],"mapped",[35041]],[[63977,63977],"mapped",[37324]],[[63978,63978],"mapped",[38626]],[[63979,63979],"mapped",[21311]],[[63980,63980],"mapped",[28346]],[[63981,63981],"mapped",[21533]],[[63982,63982],"mapped",[29136]],[[63983,63983],"mapped",[29848]],[[63984,63984],"mapped",[34298]],[[63985,63985],"mapped",[38563]],[[63986,63986],"mapped",[40023]],[[63987,63987],"mapped",[40607]],[[63988,63988],"mapped",[26519]],[[63989,63989],"mapped",[28107]],[[63990,63990],"mapped",[33256]],[[63991,63991],"mapped",[31435]],[[63992,63992],"mapped",[31520]],[[63993,63993],"mapped",[31890]],[[63994,63994],"mapped",[29376]],[[63995,63995],"mapped",[28825]],[[63996,63996],"mapped",[35672]],[[63997,63997],"mapped",[20160]],[[63998,63998],"mapped",[33590]],[[63999,63999],"mapped",[21050]],[[64000,64000],"mapped",[20999]],[[64001,64001],"mapped",[24230]],[[64002,64002],"mapped",[25299]],[[64003,64003],"mapped",[31958]],[[64004,64004],"mapped",[23429]],[[64005,64005],"mapped",[27934]],[[64006,64006],"mapped",[26292]],[[64007,64007],"mapped",[36667]],[[64008,64008],"mapped",[34892]],[[64009,64009],"mapped",[38477]],[[64010,64010],"mapped",[35211]],[[64011,64011],"mapped",[24275]],[[64012,64012],"mapped",[20800]],[[64013,64013],"mapped",[21952]],[[64014,64015],"valid"],[[64016,64016],"mapped",[22618]],[[64017,64017],"valid"],[[64018,64018],"mapped",[26228]],[[64019,64020],"valid"],[[64021,64021],"mapped",[20958]],[[64022,64022],"mapped",[29482]],[[64023,64023],"mapped",[30410]],[[64024,64024],"mapped",[31036]],[[64025,64025],"mapped",[31070]],[[64026,64026],"mapped",[31077]],[[64027,64027],"mapped",[31119]],[[64028,64028],"mapped",[38742]],[[64029,64029],"mapped",[31934]],[[64030,64030],"mapped",[32701]],[[64031,64031],"valid"],[[64032,64032],"mapped",[34322]],[[64033,64033],"valid"],[[64034,64034],"mapped",[35576]],[[64035,64036],"valid"],[[64037,64037],"mapped",[36920]],[[64038,64038],"mapped",[37117]],[[64039,64041],"valid"],[[64042,64042],"mapped",[39151]],[[64043,64043],"mapped",[39164]],[[64044,64044],"mapped",[39208]],[[64045,64045],"mapped",[40372]],[[64046,64046],"mapped",[37086]],[[64047,64047],"mapped",[38583]],[[64048,64048],"mapped",[20398]],[[64049,64049],"mapped",[20711]],[[64050,64050],"mapped",[20813]],[[64051,64051],"mapped",[21193]],[[64052,64052],"mapped",[21220]],[[64053,64053],"mapped",[21329]],[[64054,64054],"mapped",[21917]],[[64055,64055],"mapped",[22022]],[[64056,64056],"mapped",[22120]],[[64057,64057],"mapped",[22592]],[[64058,64058],"mapped",[22696]],[[64059,64059],"mapped",[23652]],[[64060,64060],"mapped",[23662]],[[64061,64061],"mapped",[24724]],[[64062,64062],"mapped",[24936]],[[64063,64063],"mapped",[24974]],[[64064,64064],"mapped",[25074]],[[64065,64065],"mapped",[25935]],[[64066,64066],"mapped",[26082]],[[64067,64067],"mapped",[26257]],[[64068,64068],"mapped",[26757]],[[64069,64069],"mapped",[28023]],[[64070,64070],"mapped",[28186]],[[64071,64071],"mapped",[28450]],[[64072,64072],"mapped",[29038]],[[64073,64073],"mapped",[29227]],[[64074,64074],"mapped",[29730]],[[64075,64075],"mapped",[30865]],[[64076,64076],"mapped",[31038]],[[64077,64077],"mapped",[31049]],[[64078,64078],"mapped",[31048]],[[64079,64079],"mapped",[31056]],[[64080,64080],"mapped",[31062]],[[64081,64081],"mapped",[31069]],[[64082,64082],"mapped",[31117]],[[64083,64083],"mapped",[31118]],[[64084,64084],"mapped",[31296]],[[64085,64085],"mapped",[31361]],[[64086,64086],"mapped",[31680]],[[64087,64087],"mapped",[32244]],[[64088,64088],"mapped",[32265]],[[64089,64089],"mapped",[32321]],[[64090,64090],"mapped",[32626]],[[64091,64091],"mapped",[32773]],[[64092,64092],"mapped",[33261]],[[64093,64094],"mapped",[33401]],[[64095,64095],"mapped",[33879]],[[64096,64096],"mapped",[35088]],[[64097,64097],"mapped",[35222]],[[64098,64098],"mapped",[35585]],[[64099,64099],"mapped",[35641]],[[64100,64100],"mapped",[36051]],[[64101,64101],"mapped",[36104]],[[64102,64102],"mapped",[36790]],[[64103,64103],"mapped",[36920]],[[64104,64104],"mapped",[38627]],[[64105,64105],"mapped",[38911]],[[64106,64106],"mapped",[38971]],[[64107,64107],"mapped",[24693]],[[64108,64108],"mapped",[148206]],[[64109,64109],"mapped",[33304]],[[64110,64111],"disallowed"],[[64112,64112],"mapped",[20006]],[[64113,64113],"mapped",[20917]],[[64114,64114],"mapped",[20840]],[[64115,64115],"mapped",[20352]],[[64116,64116],"mapped",[20805]],[[64117,64117],"mapped",[20864]],[[64118,64118],"mapped",[21191]],[[64119,64119],"mapped",[21242]],[[64120,64120],"mapped",[21917]],[[64121,64121],"mapped",[21845]],[[64122,64122],"mapped",[21913]],[[64123,64123],"mapped",[21986]],[[64124,64124],"mapped",[22618]],[[64125,64125],"mapped",[22707]],[[64126,64126],"mapped",[22852]],[[64127,64127],"mapped",[22868]],[[64128,64128],"mapped",[23138]],[[64129,64129],"mapped",[23336]],[[64130,64130],"mapped",[24274]],[[64131,64131],"mapped",[24281]],[[64132,64132],"mapped",[24425]],[[64133,64133],"mapped",[24493]],[[64134,64134],"mapped",[24792]],[[64135,64135],"mapped",[24910]],[[64136,64136],"mapped",[24840]],[[64137,64137],"mapped",[24974]],[[64138,64138],"mapped",[24928]],[[64139,64139],"mapped",[25074]],[[64140,64140],"mapped",[25140]],[[64141,64141],"mapped",[25540]],[[64142,64142],"mapped",[25628]],[[64143,64143],"mapped",[25682]],[[64144,64144],"mapped",[25942]],[[64145,64145],"mapped",[26228]],[[64146,64146],"mapped",[26391]],[[64147,64147],"mapped",[26395]],[[64148,64148],"mapped",[26454]],[[64149,64149],"mapped",[27513]],[[64150,64150],"mapped",[27578]],[[64151,64151],"mapped",[27969]],[[64152,64152],"mapped",[28379]],[[64153,64153],"mapped",[28363]],[[64154,64154],"mapped",[28450]],[[64155,64155],"mapped",[28702]],[[64156,64156],"mapped",[29038]],[[64157,64157],"mapped",[30631]],[[64158,64158],"mapped",[29237]],[[64159,64159],"mapped",[29359]],[[64160,64160],"mapped",[29482]],[[64161,64161],"mapped",[29809]],[[64162,64162],"mapped",[29958]],[[64163,64163],"mapped",[30011]],[[64164,64164],"mapped",[30237]],[[64165,64165],"mapped",[30239]],[[64166,64166],"mapped",[30410]],[[64167,64167],"mapped",[30427]],[[64168,64168],"mapped",[30452]],[[64169,64169],"mapped",[30538]],[[64170,64170],"mapped",[30528]],[[64171,64171],"mapped",[30924]],[[64172,64172],"mapped",[31409]],[[64173,64173],"mapped",[31680]],[[64174,64174],"mapped",[31867]],[[64175,64175],"mapped",[32091]],[[64176,64176],"mapped",[32244]],[[64177,64177],"mapped",[32574]],[[64178,64178],"mapped",[32773]],[[64179,64179],"mapped",[33618]],[[64180,64180],"mapped",[33775]],[[64181,64181],"mapped",[34681]],[[64182,64182],"mapped",[35137]],[[64183,64183],"mapped",[35206]],[[64184,64184],"mapped",[35222]],[[64185,64185],"mapped",[35519]],[[64186,64186],"mapped",[35576]],[[64187,64187],"mapped",[35531]],[[64188,64188],"mapped",[35585]],[[64189,64189],"mapped",[35582]],[[64190,64190],"mapped",[35565]],[[64191,64191],"mapped",[35641]],[[64192,64192],"mapped",[35722]],[[64193,64193],"mapped",[36104]],[[64194,64194],"mapped",[36664]],[[64195,64195],"mapped",[36978]],[[64196,64196],"mapped",[37273]],[[64197,64197],"mapped",[37494]],[[64198,64198],"mapped",[38524]],[[64199,64199],"mapped",[38627]],[[64200,64200],"mapped",[38742]],[[64201,64201],"mapped",[38875]],[[64202,64202],"mapped",[38911]],[[64203,64203],"mapped",[38923]],[[64204,64204],"mapped",[38971]],[[64205,64205],"mapped",[39698]],[[64206,64206],"mapped",[40860]],[[64207,64207],"mapped",[141386]],[[64208,64208],"mapped",[141380]],[[64209,64209],"mapped",[144341]],[[64210,64210],"mapped",[15261]],[[64211,64211],"mapped",[16408]],[[64212,64212],"mapped",[16441]],[[64213,64213],"mapped",[152137]],[[64214,64214],"mapped",[154832]],[[64215,64215],"mapped",[163539]],[[64216,64216],"mapped",[40771]],[[64217,64217],"mapped",[40846]],[[64218,64255],"disallowed"],[[64256,64256],"mapped",[102,102]],[[64257,64257],"mapped",[102,105]],[[64258,64258],"mapped",[102,108]],[[64259,64259],"mapped",[102,102,105]],[[64260,64260],"mapped",[102,102,108]],[[64261,64262],"mapped",[115,116]],[[64263,64274],"disallowed"],[[64275,64275],"mapped",[1396,1398]],[[64276,64276],"mapped",[1396,1381]],[[64277,64277],"mapped",[1396,1387]],[[64278,64278],"mapped",[1406,1398]],[[64279,64279],"mapped",[1396,1389]],[[64280,64284],"disallowed"],[[64285,64285],"mapped",[1497,1460]],[[64286,64286],"valid"],[[64287,64287],"mapped",[1522,1463]],[[64288,64288],"mapped",[1506]],[[64289,64289],"mapped",[1488]],[[64290,64290],"mapped",[1491]],[[64291,64291],"mapped",[1492]],[[64292,64292],"mapped",[1499]],[[64293,64293],"mapped",[1500]],[[64294,64294],"mapped",[1501]],[[64295,64295],"mapped",[1512]],[[64296,64296],"mapped",[1514]],[[64297,64297],"disallowed_STD3_mapped",[43]],[[64298,64298],"mapped",[1513,1473]],[[64299,64299],"mapped",[1513,1474]],[[64300,64300],"mapped",[1513,1468,1473]],[[64301,64301],"mapped",[1513,1468,1474]],[[64302,64302],"mapped",[1488,1463]],[[64303,64303],"mapped",[1488,1464]],[[64304,64304],"mapped",[1488,1468]],[[64305,64305],"mapped",[1489,1468]],[[64306,64306],"mapped",[1490,1468]],[[64307,64307],"mapped",[1491,1468]],[[64308,64308],"mapped",[1492,1468]],[[64309,64309],"mapped",[1493,1468]],[[64310,64310],"mapped",[1494,1468]],[[64311,64311],"disallowed"],[[64312,64312],"mapped",[1496,1468]],[[64313,64313],"mapped",[1497,1468]],[[64314,64314],"mapped",[1498,1468]],[[64315,64315],"mapped",[1499,1468]],[[64316,64316],"mapped",[1500,1468]],[[64317,64317],"disallowed"],[[64318,64318],"mapped",[1502,1468]],[[64319,64319],"disallowed"],[[64320,64320],"mapped",[1504,1468]],[[64321,64321],"mapped",[1505,1468]],[[64322,64322],"disallowed"],[[64323,64323],"mapped",[1507,1468]],[[64324,64324],"mapped",[1508,1468]],[[64325,64325],"disallowed"],[[64326,64326],"mapped",[1510,1468]],[[64327,64327],"mapped",[1511,1468]],[[64328,64328],"mapped",[1512,1468]],[[64329,64329],"mapped",[1513,1468]],[[64330,64330],"mapped",[1514,1468]],[[64331,64331],"mapped",[1493,1465]],[[64332,64332],"mapped",[1489,1471]],[[64333,64333],"mapped",[1499,1471]],[[64334,64334],"mapped",[1508,1471]],[[64335,64335],"mapped",[1488,1500]],[[64336,64337],"mapped",[1649]],[[64338,64341],"mapped",[1659]],[[64342,64345],"mapped",[1662]],[[64346,64349],"mapped",[1664]],[[64350,64353],"mapped",[1658]],[[64354,64357],"mapped",[1663]],[[64358,64361],"mapped",[1657]],[[64362,64365],"mapped",[1700]],[[64366,64369],"mapped",[1702]],[[64370,64373],"mapped",[1668]],[[64374,64377],"mapped",[1667]],[[64378,64381],"mapped",[1670]],[[64382,64385],"mapped",[1671]],[[64386,64387],"mapped",[1677]],[[64388,64389],"mapped",[1676]],[[64390,64391],"mapped",[1678]],[[64392,64393],"mapped",[1672]],[[64394,64395],"mapped",[1688]],[[64396,64397],"mapped",[1681]],[[64398,64401],"mapped",[1705]],[[64402,64405],"mapped",[1711]],[[64406,64409],"mapped",[1715]],[[64410,64413],"mapped",[1713]],[[64414,64415],"mapped",[1722]],[[64416,64419],"mapped",[1723]],[[64420,64421],"mapped",[1728]],[[64422,64425],"mapped",[1729]],[[64426,64429],"mapped",[1726]],[[64430,64431],"mapped",[1746]],[[64432,64433],"mapped",[1747]],[[64434,64449],"valid",[],"NV8"],[[64450,64466],"disallowed"],[[64467,64470],"mapped",[1709]],[[64471,64472],"mapped",[1735]],[[64473,64474],"mapped",[1734]],[[64475,64476],"mapped",[1736]],[[64477,64477],"mapped",[1735,1652]],[[64478,64479],"mapped",[1739]],[[64480,64481],"mapped",[1733]],[[64482,64483],"mapped",[1737]],[[64484,64487],"mapped",[1744]],[[64488,64489],"mapped",[1609]],[[64490,64491],"mapped",[1574,1575]],[[64492,64493],"mapped",[1574,1749]],[[64494,64495],"mapped",[1574,1608]],[[64496,64497],"mapped",[1574,1735]],[[64498,64499],"mapped",[1574,1734]],[[64500,64501],"mapped",[1574,1736]],[[64502,64504],"mapped",[1574,1744]],[[64505,64507],"mapped",[1574,1609]],[[64508,64511],"mapped",[1740]],[[64512,64512],"mapped",[1574,1580]],[[64513,64513],"mapped",[1574,1581]],[[64514,64514],"mapped",[1574,1605]],[[64515,64515],"mapped",[1574,1609]],[[64516,64516],"mapped",[1574,1610]],[[64517,64517],"mapped",[1576,1580]],[[64518,64518],"mapped",[1576,1581]],[[64519,64519],"mapped",[1576,1582]],[[64520,64520],"mapped",[1576,1605]],[[64521,64521],"mapped",[1576,1609]],[[64522,64522],"mapped",[1576,1610]],[[64523,64523],"mapped",[1578,1580]],[[64524,64524],"mapped",[1578,1581]],[[64525,64525],"mapped",[1578,1582]],[[64526,64526],"mapped",[1578,1605]],[[64527,64527],"mapped",[1578,1609]],[[64528,64528],"mapped",[1578,1610]],[[64529,64529],"mapped",[1579,1580]],[[64530,64530],"mapped",[1579,1605]],[[64531,64531],"mapped",[1579,1609]],[[64532,64532],"mapped",[1579,1610]],[[64533,64533],"mapped",[1580,1581]],[[64534,64534],"mapped",[1580,1605]],[[64535,64535],"mapped",[1581,1580]],[[64536,64536],"mapped",[1581,1605]],[[64537,64537],"mapped",[1582,1580]],[[64538,64538],"mapped",[1582,1581]],[[64539,64539],"mapped",[1582,1605]],[[64540,64540],"mapped",[1587,1580]],[[64541,64541],"mapped",[1587,1581]],[[64542,64542],"mapped",[1587,1582]],[[64543,64543],"mapped",[1587,1605]],[[64544,64544],"mapped",[1589,1581]],[[64545,64545],"mapped",[1589,1605]],[[64546,64546],"mapped",[1590,1580]],[[64547,64547],"mapped",[1590,1581]],[[64548,64548],"mapped",[1590,1582]],[[64549,64549],"mapped",[1590,1605]],[[64550,64550],"mapped",[1591,1581]],[[64551,64551],"mapped",[1591,1605]],[[64552,64552],"mapped",[1592,1605]],[[64553,64553],"mapped",[1593,1580]],[[64554,64554],"mapped",[1593,1605]],[[64555,64555],"mapped",[1594,1580]],[[64556,64556],"mapped",[1594,1605]],[[64557,64557],"mapped",[1601,1580]],[[64558,64558],"mapped",[1601,1581]],[[64559,64559],"mapped",[1601,1582]],[[64560,64560],"mapped",[1601,1605]],[[64561,64561],"mapped",[1601,1609]],[[64562,64562],"mapped",[1601,1610]],[[64563,64563],"mapped",[1602,1581]],[[64564,64564],"mapped",[1602,1605]],[[64565,64565],"mapped",[1602,1609]],[[64566,64566],"mapped",[1602,1610]],[[64567,64567],"mapped",[1603,1575]],[[64568,64568],"mapped",[1603,1580]],[[64569,64569],"mapped",[1603,1581]],[[64570,64570],"mapped",[1603,1582]],[[64571,64571],"mapped",[1603,1604]],[[64572,64572],"mapped",[1603,1605]],[[64573,64573],"mapped",[1603,1609]],[[64574,64574],"mapped",[1603,1610]],[[64575,64575],"mapped",[1604,1580]],[[64576,64576],"mapped",[1604,1581]],[[64577,64577],"mapped",[1604,1582]],[[64578,64578],"mapped",[1604,1605]],[[64579,64579],"mapped",[1604,1609]],[[64580,64580],"mapped",[1604,1610]],[[64581,64581],"mapped",[1605,1580]],[[64582,64582],"mapped",[1605,1581]],[[64583,64583],"mapped",[1605,1582]],[[64584,64584],"mapped",[1605,1605]],[[64585,64585],"mapped",[1605,1609]],[[64586,64586],"mapped",[1605,1610]],[[64587,64587],"mapped",[1606,1580]],[[64588,64588],"mapped",[1606,1581]],[[64589,64589],"mapped",[1606,1582]],[[64590,64590],"mapped",[1606,1605]],[[64591,64591],"mapped",[1606,1609]],[[64592,64592],"mapped",[1606,1610]],[[64593,64593],"mapped",[1607,1580]],[[64594,64594],"mapped",[1607,1605]],[[64595,64595],"mapped",[1607,1609]],[[64596,64596],"mapped",[1607,1610]],[[64597,64597],"mapped",[1610,1580]],[[64598,64598],"mapped",[1610,1581]],[[64599,64599],"mapped",[1610,1582]],[[64600,64600],"mapped",[1610,1605]],[[64601,64601],"mapped",[1610,1609]],[[64602,64602],"mapped",[1610,1610]],[[64603,64603],"mapped",[1584,1648]],[[64604,64604],"mapped",[1585,1648]],[[64605,64605],"mapped",[1609,1648]],[[64606,64606],"disallowed_STD3_mapped",[32,1612,1617]],[[64607,64607],"disallowed_STD3_mapped",[32,1613,1617]],[[64608,64608],"disallowed_STD3_mapped",[32,1614,1617]],[[64609,64609],"disallowed_STD3_mapped",[32,1615,1617]],[[64610,64610],"disallowed_STD3_mapped",[32,1616,1617]],[[64611,64611],"disallowed_STD3_mapped",[32,1617,1648]],[[64612,64612],"mapped",[1574,1585]],[[64613,64613],"mapped",[1574,1586]],[[64614,64614],"mapped",[1574,1605]],[[64615,64615],"mapped",[1574,1606]],[[64616,64616],"mapped",[1574,1609]],[[64617,64617],"mapped",[1574,1610]],[[64618,64618],"mapped",[1576,1585]],[[64619,64619],"mapped",[1576,1586]],[[64620,64620],"mapped",[1576,1605]],[[64621,64621],"mapped",[1576,1606]],[[64622,64622],"mapped",[1576,1609]],[[64623,64623],"mapped",[1576,1610]],[[64624,64624],"mapped",[1578,1585]],[[64625,64625],"mapped",[1578,1586]],[[64626,64626],"mapped",[1578,1605]],[[64627,64627],"mapped",[1578,1606]],[[64628,64628],"mapped",[1578,1609]],[[64629,64629],"mapped",[1578,1610]],[[64630,64630],"mapped",[1579,1585]],[[64631,64631],"mapped",[1579,1586]],[[64632,64632],"mapped",[1579,1605]],[[64633,64633],"mapped",[1579,1606]],[[64634,64634],"mapped",[1579,1609]],[[64635,64635],"mapped",[1579,1610]],[[64636,64636],"mapped",[1601,1609]],[[64637,64637],"mapped",[1601,1610]],[[64638,64638],"mapped",[1602,1609]],[[64639,64639],"mapped",[1602,1610]],[[64640,64640],"mapped",[1603,1575]],[[64641,64641],"mapped",[1603,1604]],[[64642,64642],"mapped",[1603,1605]],[[64643,64643],"mapped",[1603,1609]],[[64644,64644],"mapped",[1603,1610]],[[64645,64645],"mapped",[1604,1605]],[[64646,64646],"mapped",[1604,1609]],[[64647,64647],"mapped",[1604,1610]],[[64648,64648],"mapped",[1605,1575]],[[64649,64649],"mapped",[1605,1605]],[[64650,64650],"mapped",[1606,1585]],[[64651,64651],"mapped",[1606,1586]],[[64652,64652],"mapped",[1606,1605]],[[64653,64653],"mapped",[1606,1606]],[[64654,64654],"mapped",[1606,1609]],[[64655,64655],"mapped",[1606,1610]],[[64656,64656],"mapped",[1609,1648]],[[64657,64657],"mapped",[1610,1585]],[[64658,64658],"mapped",[1610,1586]],[[64659,64659],"mapped",[1610,1605]],[[64660,64660],"mapped",[1610,1606]],[[64661,64661],"mapped",[1610,1609]],[[64662,64662],"mapped",[1610,1610]],[[64663,64663],"mapped",[1574,1580]],[[64664,64664],"mapped",[1574,1581]],[[64665,64665],"mapped",[1574,1582]],[[64666,64666],"mapped",[1574,1605]],[[64667,64667],"mapped",[1574,1607]],[[64668,64668],"mapped",[1576,1580]],[[64669,64669],"mapped",[1576,1581]],[[64670,64670],"mapped",[1576,1582]],[[64671,64671],"mapped",[1576,1605]],[[64672,64672],"mapped",[1576,1607]],[[64673,64673],"mapped",[1578,1580]],[[64674,64674],"mapped",[1578,1581]],[[64675,64675],"mapped",[1578,1582]],[[64676,64676],"mapped",[1578,1605]],[[64677,64677],"mapped",[1578,1607]],[[64678,64678],"mapped",[1579,1605]],[[64679,64679],"mapped",[1580,1581]],[[64680,64680],"mapped",[1580,1605]],[[64681,64681],"mapped",[1581,1580]],[[64682,64682],"mapped",[1581,1605]],[[64683,64683],"mapped",[1582,1580]],[[64684,64684],"mapped",[1582,1605]],[[64685,64685],"mapped",[1587,1580]],[[64686,64686],"mapped",[1587,1581]],[[64687,64687],"mapped",[1587,1582]],[[64688,64688],"mapped",[1587,1605]],[[64689,64689],"mapped",[1589,1581]],[[64690,64690],"mapped",[1589,1582]],[[64691,64691],"mapped",[1589,1605]],[[64692,64692],"mapped",[1590,1580]],[[64693,64693],"mapped",[1590,1581]],[[64694,64694],"mapped",[1590,1582]],[[64695,64695],"mapped",[1590,1605]],[[64696,64696],"mapped",[1591,1581]],[[64697,64697],"mapped",[1592,1605]],[[64698,64698],"mapped",[1593,1580]],[[64699,64699],"mapped",[1593,1605]],[[64700,64700],"mapped",[1594,1580]],[[64701,64701],"mapped",[1594,1605]],[[64702,64702],"mapped",[1601,1580]],[[64703,64703],"mapped",[1601,1581]],[[64704,64704],"mapped",[1601,1582]],[[64705,64705],"mapped",[1601,1605]],[[64706,64706],"mapped",[1602,1581]],[[64707,64707],"mapped",[1602,1605]],[[64708,64708],"mapped",[1603,1580]],[[64709,64709],"mapped",[1603,1581]],[[64710,64710],"mapped",[1603,1582]],[[64711,64711],"mapped",[1603,1604]],[[64712,64712],"mapped",[1603,1605]],[[64713,64713],"mapped",[1604,1580]],[[64714,64714],"mapped",[1604,1581]],[[64715,64715],"mapped",[1604,1582]],[[64716,64716],"mapped",[1604,1605]],[[64717,64717],"mapped",[1604,1607]],[[64718,64718],"mapped",[1605,1580]],[[64719,64719],"mapped",[1605,1581]],[[64720,64720],"mapped",[1605,1582]],[[64721,64721],"mapped",[1605,1605]],[[64722,64722],"mapped",[1606,1580]],[[64723,64723],"mapped",[1606,1581]],[[64724,64724],"mapped",[1606,1582]],[[64725,64725],"mapped",[1606,1605]],[[64726,64726],"mapped",[1606,1607]],[[64727,64727],"mapped",[1607,1580]],[[64728,64728],"mapped",[1607,1605]],[[64729,64729],"mapped",[1607,1648]],[[64730,64730],"mapped",[1610,1580]],[[64731,64731],"mapped",[1610,1581]],[[64732,64732],"mapped",[1610,1582]],[[64733,64733],"mapped",[1610,1605]],[[64734,64734],"mapped",[1610,1607]],[[64735,64735],"mapped",[1574,1605]],[[64736,64736],"mapped",[1574,1607]],[[64737,64737],"mapped",[1576,1605]],[[64738,64738],"mapped",[1576,1607]],[[64739,64739],"mapped",[1578,1605]],[[64740,64740],"mapped",[1578,1607]],[[64741,64741],"mapped",[1579,1605]],[[64742,64742],"mapped",[1579,1607]],[[64743,64743],"mapped",[1587,1605]],[[64744,64744],"mapped",[1587,1607]],[[64745,64745],"mapped",[1588,1605]],[[64746,64746],"mapped",[1588,1607]],[[64747,64747],"mapped",[1603,1604]],[[64748,64748],"mapped",[1603,1605]],[[64749,64749],"mapped",[1604,1605]],[[64750,64750],"mapped",[1606,1605]],[[64751,64751],"mapped",[1606,1607]],[[64752,64752],"mapped",[1610,1605]],[[64753,64753],"mapped",[1610,1607]],[[64754,64754],"mapped",[1600,1614,1617]],[[64755,64755],"mapped",[1600,1615,1617]],[[64756,64756],"mapped",[1600,1616,1617]],[[64757,64757],"mapped",[1591,1609]],[[64758,64758],"mapped",[1591,1610]],[[64759,64759],"mapped",[1593,1609]],[[64760,64760],"mapped",[1593,1610]],[[64761,64761],"mapped",[1594,1609]],[[64762,64762],"mapped",[1594,1610]],[[64763,64763],"mapped",[1587,1609]],[[64764,64764],"mapped",[1587,1610]],[[64765,64765],"mapped",[1588,1609]],[[64766,64766],"mapped",[1588,1610]],[[64767,64767],"mapped",[1581,1609]],[[64768,64768],"mapped",[1581,1610]],[[64769,64769],"mapped",[1580,1609]],[[64770,64770],"mapped",[1580,1610]],[[64771,64771],"mapped",[1582,1609]],[[64772,64772],"mapped",[1582,1610]],[[64773,64773],"mapped",[1589,1609]],[[64774,64774],"mapped",[1589,1610]],[[64775,64775],"mapped",[1590,1609]],[[64776,64776],"mapped",[1590,1610]],[[64777,64777],"mapped",[1588,1580]],[[64778,64778],"mapped",[1588,1581]],[[64779,64779],"mapped",[1588,1582]],[[64780,64780],"mapped",[1588,1605]],[[64781,64781],"mapped",[1588,1585]],[[64782,64782],"mapped",[1587,1585]],[[64783,64783],"mapped",[1589,1585]],[[64784,64784],"mapped",[1590,1585]],[[64785,64785],"mapped",[1591,1609]],[[64786,64786],"mapped",[1591,1610]],[[64787,64787],"mapped",[1593,1609]],[[64788,64788],"mapped",[1593,1610]],[[64789,64789],"mapped",[1594,1609]],[[64790,64790],"mapped",[1594,1610]],[[64791,64791],"mapped",[1587,1609]],[[64792,64792],"mapped",[1587,1610]],[[64793,64793],"mapped",[1588,1609]],[[64794,64794],"mapped",[1588,1610]],[[64795,64795],"mapped",[1581,1609]],[[64796,64796],"mapped",[1581,1610]],[[64797,64797],"mapped",[1580,1609]],[[64798,64798],"mapped",[1580,1610]],[[64799,64799],"mapped",[1582,1609]],[[64800,64800],"mapped",[1582,1610]],[[64801,64801],"mapped",[1589,1609]],[[64802,64802],"mapped",[1589,1610]],[[64803,64803],"mapped",[1590,1609]],[[64804,64804],"mapped",[1590,1610]],[[64805,64805],"mapped",[1588,1580]],[[64806,64806],"mapped",[1588,1581]],[[64807,64807],"mapped",[1588,1582]],[[64808,64808],"mapped",[1588,1605]],[[64809,64809],"mapped",[1588,1585]],[[64810,64810],"mapped",[1587,1585]],[[64811,64811],"mapped",[1589,1585]],[[64812,64812],"mapped",[1590,1585]],[[64813,64813],"mapped",[1588,1580]],[[64814,64814],"mapped",[1588,1581]],[[64815,64815],"mapped",[1588,1582]],[[64816,64816],"mapped",[1588,1605]],[[64817,64817],"mapped",[1587,1607]],[[64818,64818],"mapped",[1588,1607]],[[64819,64819],"mapped",[1591,1605]],[[64820,64820],"mapped",[1587,1580]],[[64821,64821],"mapped",[1587,1581]],[[64822,64822],"mapped",[1587,1582]],[[64823,64823],"mapped",[1588,1580]],[[64824,64824],"mapped",[1588,1581]],[[64825,64825],"mapped",[1588,1582]],[[64826,64826],"mapped",[1591,1605]],[[64827,64827],"mapped",[1592,1605]],[[64828,64829],"mapped",[1575,1611]],[[64830,64831],"valid",[],"NV8"],[[64832,64847],"disallowed"],[[64848,64848],"mapped",[1578,1580,1605]],[[64849,64850],"mapped",[1578,1581,1580]],[[64851,64851],"mapped",[1578,1581,1605]],[[64852,64852],"mapped",[1578,1582,1605]],[[64853,64853],"mapped",[1578,1605,1580]],[[64854,64854],"mapped",[1578,1605,1581]],[[64855,64855],"mapped",[1578,1605,1582]],[[64856,64857],"mapped",[1580,1605,1581]],[[64858,64858],"mapped",[1581,1605,1610]],[[64859,64859],"mapped",[1581,1605,1609]],[[64860,64860],"mapped",[1587,1581,1580]],[[64861,64861],"mapped",[1587,1580,1581]],[[64862,64862],"mapped",[1587,1580,1609]],[[64863,64864],"mapped",[1587,1605,1581]],[[64865,64865],"mapped",[1587,1605,1580]],[[64866,64867],"mapped",[1587,1605,1605]],[[64868,64869],"mapped",[1589,1581,1581]],[[64870,64870],"mapped",[1589,1605,1605]],[[64871,64872],"mapped",[1588,1581,1605]],[[64873,64873],"mapped",[1588,1580,1610]],[[64874,64875],"mapped",[1588,1605,1582]],[[64876,64877],"mapped",[1588,1605,1605]],[[64878,64878],"mapped",[1590,1581,1609]],[[64879,64880],"mapped",[1590,1582,1605]],[[64881,64882],"mapped",[1591,1605,1581]],[[64883,64883],"mapped",[1591,1605,1605]],[[64884,64884],"mapped",[1591,1605,1610]],[[64885,64885],"mapped",[1593,1580,1605]],[[64886,64887],"mapped",[1593,1605,1605]],[[64888,64888],"mapped",[1593,1605,1609]],[[64889,64889],"mapped",[1594,1605,1605]],[[64890,64890],"mapped",[1594,1605,1610]],[[64891,64891],"mapped",[1594,1605,1609]],[[64892,64893],"mapped",[1601,1582,1605]],[[64894,64894],"mapped",[1602,1605,1581]],[[64895,64895],"mapped",[1602,1605,1605]],[[64896,64896],"mapped",[1604,1581,1605]],[[64897,64897],"mapped",[1604,1581,1610]],[[64898,64898],"mapped",[1604,1581,1609]],[[64899,64900],"mapped",[1604,1580,1580]],[[64901,64902],"mapped",[1604,1582,1605]],[[64903,64904],"mapped",[1604,1605,1581]],[[64905,64905],"mapped",[1605,1581,1580]],[[64906,64906],"mapped",[1605,1581,1605]],[[64907,64907],"mapped",[1605,1581,1610]],[[64908,64908],"mapped",[1605,1580,1581]],[[64909,64909],"mapped",[1605,1580,1605]],[[64910,64910],"mapped",[1605,1582,1580]],[[64911,64911],"mapped",[1605,1582,1605]],[[64912,64913],"disallowed"],[[64914,64914],"mapped",[1605,1580,1582]],[[64915,64915],"mapped",[1607,1605,1580]],[[64916,64916],"mapped",[1607,1605,1605]],[[64917,64917],"mapped",[1606,1581,1605]],[[64918,64918],"mapped",[1606,1581,1609]],[[64919,64920],"mapped",[1606,1580,1605]],[[64921,64921],"mapped",[1606,1580,1609]],[[64922,64922],"mapped",[1606,1605,1610]],[[64923,64923],"mapped",[1606,1605,1609]],[[64924,64925],"mapped",[1610,1605,1605]],[[64926,64926],"mapped",[1576,1582,1610]],[[64927,64927],"mapped",[1578,1580,1610]],[[64928,64928],"mapped",[1578,1580,1609]],[[64929,64929],"mapped",[1578,1582,1610]],[[64930,64930],"mapped",[1578,1582,1609]],[[64931,64931],"mapped",[1578,1605,1610]],[[64932,64932],"mapped",[1578,1605,1609]],[[64933,64933],"mapped",[1580,1605,1610]],[[64934,64934],"mapped",[1580,1581,1609]],[[64935,64935],"mapped",[1580,1605,1609]],[[64936,64936],"mapped",[1587,1582,1609]],[[64937,64937],"mapped",[1589,1581,1610]],[[64938,64938],"mapped",[1588,1581,1610]],[[64939,64939],"mapped",[1590,1581,1610]],[[64940,64940],"mapped",[1604,1580,1610]],[[64941,64941],"mapped",[1604,1605,1610]],[[64942,64942],"mapped",[1610,1581,1610]],[[64943,64943],"mapped",[1610,1580,1610]],[[64944,64944],"mapped",[1610,1605,1610]],[[64945,64945],"mapped",[1605,1605,1610]],[[64946,64946],"mapped",[1602,1605,1610]],[[64947,64947],"mapped",[1606,1581,1610]],[[64948,64948],"mapped",[1602,1605,1581]],[[64949,64949],"mapped",[1604,1581,1605]],[[64950,64950],"mapped",[1593,1605,1610]],[[64951,64951],"mapped",[1603,1605,1610]],[[64952,64952],"mapped",[1606,1580,1581]],[[64953,64953],"mapped",[1605,1582,1610]],[[64954,64954],"mapped",[1604,1580,1605]],[[64955,64955],"mapped",[1603,1605,1605]],[[64956,64956],"mapped",[1604,1580,1605]],[[64957,64957],"mapped",[1606,1580,1581]],[[64958,64958],"mapped",[1580,1581,1610]],[[64959,64959],"mapped",[1581,1580,1610]],[[64960,64960],"mapped",[1605,1580,1610]],[[64961,64961],"mapped",[1601,1605,1610]],[[64962,64962],"mapped",[1576,1581,1610]],[[64963,64963],"mapped",[1603,1605,1605]],[[64964,64964],"mapped",[1593,1580,1605]],[[64965,64965],"mapped",[1589,1605,1605]],[[64966,64966],"mapped",[1587,1582,1610]],[[64967,64967],"mapped",[1606,1580,1610]],[[64968,64975],"disallowed"],[[64976,65007],"disallowed"],[[65008,65008],"mapped",[1589,1604,1746]],[[65009,65009],"mapped",[1602,1604,1746]],[[65010,65010],"mapped",[1575,1604,1604,1607]],[[65011,65011],"mapped",[1575,1603,1576,1585]],[[65012,65012],"mapped",[1605,1581,1605,1583]],[[65013,65013],"mapped",[1589,1604,1593,1605]],[[65014,65014],"mapped",[1585,1587,1608,1604]],[[65015,65015],"mapped",[1593,1604,1610,1607]],[[65016,65016],"mapped",[1608,1587,1604,1605]],[[65017,65017],"mapped",[1589,1604,1609]],[[65018,65018],"disallowed_STD3_mapped",[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605]],[[65019,65019],"disallowed_STD3_mapped",[1580,1604,32,1580,1604,1575,1604,1607]],[[65020,65020],"mapped",[1585,1740,1575,1604]],[[65021,65021],"valid",[],"NV8"],[[65022,65023],"disallowed"],[[65024,65039],"ignored"],[[65040,65040],"disallowed_STD3_mapped",[44]],[[65041,65041],"mapped",[12289]],[[65042,65042],"disallowed"],[[65043,65043],"disallowed_STD3_mapped",[58]],[[65044,65044],"disallowed_STD3_mapped",[59]],[[65045,65045],"disallowed_STD3_mapped",[33]],[[65046,65046],"disallowed_STD3_mapped",[63]],[[65047,65047],"mapped",[12310]],[[65048,65048],"mapped",[12311]],[[65049,65049],"disallowed"],[[65050,65055],"disallowed"],[[65056,65059],"valid"],[[65060,65062],"valid"],[[65063,65069],"valid"],[[65070,65071],"valid"],[[65072,65072],"disallowed"],[[65073,65073],"mapped",[8212]],[[65074,65074],"mapped",[8211]],[[65075,65076],"disallowed_STD3_mapped",[95]],[[65077,65077],"disallowed_STD3_mapped",[40]],[[65078,65078],"disallowed_STD3_mapped",[41]],[[65079,65079],"disallowed_STD3_mapped",[123]],[[65080,65080],"disallowed_STD3_mapped",[125]],[[65081,65081],"mapped",[12308]],[[65082,65082],"mapped",[12309]],[[65083,65083],"mapped",[12304]],[[65084,65084],"mapped",[12305]],[[65085,65085],"mapped",[12298]],[[65086,65086],"mapped",[12299]],[[65087,65087],"mapped",[12296]],[[65088,65088],"mapped",[12297]],[[65089,65089],"mapped",[12300]],[[65090,65090],"mapped",[12301]],[[65091,65091],"mapped",[12302]],[[65092,65092],"mapped",[12303]],[[65093,65094],"valid",[],"NV8"],[[65095,65095],"disallowed_STD3_mapped",[91]],[[65096,65096],"disallowed_STD3_mapped",[93]],[[65097,65100],"disallowed_STD3_mapped",[32,773]],[[65101,65103],"disallowed_STD3_mapped",[95]],[[65104,65104],"disallowed_STD3_mapped",[44]],[[65105,65105],"mapped",[12289]],[[65106,65106],"disallowed"],[[65107,65107],"disallowed"],[[65108,65108],"disallowed_STD3_mapped",[59]],[[65109,65109],"disallowed_STD3_mapped",[58]],[[65110,65110],"disallowed_STD3_mapped",[63]],[[65111,65111],"disallowed_STD3_mapped",[33]],[[65112,65112],"mapped",[8212]],[[65113,65113],"disallowed_STD3_mapped",[40]],[[65114,65114],"disallowed_STD3_mapped",[41]],[[65115,65115],"disallowed_STD3_mapped",[123]],[[65116,65116],"disallowed_STD3_mapped",[125]],[[65117,65117],"mapped",[12308]],[[65118,65118],"mapped",[12309]],[[65119,65119],"disallowed_STD3_mapped",[35]],[[65120,65120],"disallowed_STD3_mapped",[38]],[[65121,65121],"disallowed_STD3_mapped",[42]],[[65122,65122],"disallowed_STD3_mapped",[43]],[[65123,65123],"mapped",[45]],[[65124,65124],"disallowed_STD3_mapped",[60]],[[65125,65125],"disallowed_STD3_mapped",[62]],[[65126,65126],"disallowed_STD3_mapped",[61]],[[65127,65127],"disallowed"],[[65128,65128],"disallowed_STD3_mapped",[92]],[[65129,65129],"disallowed_STD3_mapped",[36]],[[65130,65130],"disallowed_STD3_mapped",[37]],[[65131,65131],"disallowed_STD3_mapped",[64]],[[65132,65135],"disallowed"],[[65136,65136],"disallowed_STD3_mapped",[32,1611]],[[65137,65137],"mapped",[1600,1611]],[[65138,65138],"disallowed_STD3_mapped",[32,1612]],[[65139,65139],"valid"],[[65140,65140],"disallowed_STD3_mapped",[32,1613]],[[65141,65141],"disallowed"],[[65142,65142],"disallowed_STD3_mapped",[32,1614]],[[65143,65143],"mapped",[1600,1614]],[[65144,65144],"disallowed_STD3_mapped",[32,1615]],[[65145,65145],"mapped",[1600,1615]],[[65146,65146],"disallowed_STD3_mapped",[32,1616]],[[65147,65147],"mapped",[1600,1616]],[[65148,65148],"disallowed_STD3_mapped",[32,1617]],[[65149,65149],"mapped",[1600,1617]],[[65150,65150],"disallowed_STD3_mapped",[32,1618]],[[65151,65151],"mapped",[1600,1618]],[[65152,65152],"mapped",[1569]],[[65153,65154],"mapped",[1570]],[[65155,65156],"mapped",[1571]],[[65157,65158],"mapped",[1572]],[[65159,65160],"mapped",[1573]],[[65161,65164],"mapped",[1574]],[[65165,65166],"mapped",[1575]],[[65167,65170],"mapped",[1576]],[[65171,65172],"mapped",[1577]],[[65173,65176],"mapped",[1578]],[[65177,65180],"mapped",[1579]],[[65181,65184],"mapped",[1580]],[[65185,65188],"mapped",[1581]],[[65189,65192],"mapped",[1582]],[[65193,65194],"mapped",[1583]],[[65195,65196],"mapped",[1584]],[[65197,65198],"mapped",[1585]],[[65199,65200],"mapped",[1586]],[[65201,65204],"mapped",[1587]],[[65205,65208],"mapped",[1588]],[[65209,65212],"mapped",[1589]],[[65213,65216],"mapped",[1590]],[[65217,65220],"mapped",[1591]],[[65221,65224],"mapped",[1592]],[[65225,65228],"mapped",[1593]],[[65229,65232],"mapped",[1594]],[[65233,65236],"mapped",[1601]],[[65237,65240],"mapped",[1602]],[[65241,65244],"mapped",[1603]],[[65245,65248],"mapped",[1604]],[[65249,65252],"mapped",[1605]],[[65253,65256],"mapped",[1606]],[[65257,65260],"mapped",[1607]],[[65261,65262],"mapped",[1608]],[[65263,65264],"mapped",[1609]],[[65265,65268],"mapped",[1610]],[[65269,65270],"mapped",[1604,1570]],[[65271,65272],"mapped",[1604,1571]],[[65273,65274],"mapped",[1604,1573]],[[65275,65276],"mapped",[1604,1575]],[[65277,65278],"disallowed"],[[65279,65279],"ignored"],[[65280,65280],"disallowed"],[[65281,65281],"disallowed_STD3_mapped",[33]],[[65282,65282],"disallowed_STD3_mapped",[34]],[[65283,65283],"disallowed_STD3_mapped",[35]],[[65284,65284],"disallowed_STD3_mapped",[36]],[[65285,65285],"disallowed_STD3_mapped",[37]],[[65286,65286],"disallowed_STD3_mapped",[38]],[[65287,65287],"disallowed_STD3_mapped",[39]],[[65288,65288],"disallowed_STD3_mapped",[40]],[[65289,65289],"disallowed_STD3_mapped",[41]],[[65290,65290],"disallowed_STD3_mapped",[42]],[[65291,65291],"disallowed_STD3_mapped",[43]],[[65292,65292],"disallowed_STD3_mapped",[44]],[[65293,65293],"mapped",[45]],[[65294,65294],"mapped",[46]],[[65295,65295],"disallowed_STD3_mapped",[47]],[[65296,65296],"mapped",[48]],[[65297,65297],"mapped",[49]],[[65298,65298],"mapped",[50]],[[65299,65299],"mapped",[51]],[[65300,65300],"mapped",[52]],[[65301,65301],"mapped",[53]],[[65302,65302],"mapped",[54]],[[65303,65303],"mapped",[55]],[[65304,65304],"mapped",[56]],[[65305,65305],"mapped",[57]],[[65306,65306],"disallowed_STD3_mapped",[58]],[[65307,65307],"disallowed_STD3_mapped",[59]],[[65308,65308],"disallowed_STD3_mapped",[60]],[[65309,65309],"disallowed_STD3_mapped",[61]],[[65310,65310],"disallowed_STD3_mapped",[62]],[[65311,65311],"disallowed_STD3_mapped",[63]],[[65312,65312],"disallowed_STD3_mapped",[64]],[[65313,65313],"mapped",[97]],[[65314,65314],"mapped",[98]],[[65315,65315],"mapped",[99]],[[65316,65316],"mapped",[100]],[[65317,65317],"mapped",[101]],[[65318,65318],"mapped",[102]],[[65319,65319],"mapped",[103]],[[65320,65320],"mapped",[104]],[[65321,65321],"mapped",[105]],[[65322,65322],"mapped",[106]],[[65323,65323],"mapped",[107]],[[65324,65324],"mapped",[108]],[[65325,65325],"mapped",[109]],[[65326,65326],"mapped",[110]],[[65327,65327],"mapped",[111]],[[65328,65328],"mapped",[112]],[[65329,65329],"mapped",[113]],[[65330,65330],"mapped",[114]],[[65331,65331],"mapped",[115]],[[65332,65332],"mapped",[116]],[[65333,65333],"mapped",[117]],[[65334,65334],"mapped",[118]],[[65335,65335],"mapped",[119]],[[65336,65336],"mapped",[120]],[[65337,65337],"mapped",[121]],[[65338,65338],"mapped",[122]],[[65339,65339],"disallowed_STD3_mapped",[91]],[[65340,65340],"disallowed_STD3_mapped",[92]],[[65341,65341],"disallowed_STD3_mapped",[93]],[[65342,65342],"disallowed_STD3_mapped",[94]],[[65343,65343],"disallowed_STD3_mapped",[95]],[[65344,65344],"disallowed_STD3_mapped",[96]],[[65345,65345],"mapped",[97]],[[65346,65346],"mapped",[98]],[[65347,65347],"mapped",[99]],[[65348,65348],"mapped",[100]],[[65349,65349],"mapped",[101]],[[65350,65350],"mapped",[102]],[[65351,65351],"mapped",[103]],[[65352,65352],"mapped",[104]],[[65353,65353],"mapped",[105]],[[65354,65354],"mapped",[106]],[[65355,65355],"mapped",[107]],[[65356,65356],"mapped",[108]],[[65357,65357],"mapped",[109]],[[65358,65358],"mapped",[110]],[[65359,65359],"mapped",[111]],[[65360,65360],"mapped",[112]],[[65361,65361],"mapped",[113]],[[65362,65362],"mapped",[114]],[[65363,65363],"mapped",[115]],[[65364,65364],"mapped",[116]],[[65365,65365],"mapped",[117]],[[65366,65366],"mapped",[118]],[[65367,65367],"mapped",[119]],[[65368,65368],"mapped",[120]],[[65369,65369],"mapped",[121]],[[65370,65370],"mapped",[122]],[[65371,65371],"disallowed_STD3_mapped",[123]],[[65372,65372],"disallowed_STD3_mapped",[124]],[[65373,65373],"disallowed_STD3_mapped",[125]],[[65374,65374],"disallowed_STD3_mapped",[126]],[[65375,65375],"mapped",[10629]],[[65376,65376],"mapped",[10630]],[[65377,65377],"mapped",[46]],[[65378,65378],"mapped",[12300]],[[65379,65379],"mapped",[12301]],[[65380,65380],"mapped",[12289]],[[65381,65381],"mapped",[12539]],[[65382,65382],"mapped",[12530]],[[65383,65383],"mapped",[12449]],[[65384,65384],"mapped",[12451]],[[65385,65385],"mapped",[12453]],[[65386,65386],"mapped",[12455]],[[65387,65387],"mapped",[12457]],[[65388,65388],"mapped",[12515]],[[65389,65389],"mapped",[12517]],[[65390,65390],"mapped",[12519]],[[65391,65391],"mapped",[12483]],[[65392,65392],"mapped",[12540]],[[65393,65393],"mapped",[12450]],[[65394,65394],"mapped",[12452]],[[65395,65395],"mapped",[12454]],[[65396,65396],"mapped",[12456]],[[65397,65397],"mapped",[12458]],[[65398,65398],"mapped",[12459]],[[65399,65399],"mapped",[12461]],[[65400,65400],"mapped",[12463]],[[65401,65401],"mapped",[12465]],[[65402,65402],"mapped",[12467]],[[65403,65403],"mapped",[12469]],[[65404,65404],"mapped",[12471]],[[65405,65405],"mapped",[12473]],[[65406,65406],"mapped",[12475]],[[65407,65407],"mapped",[12477]],[[65408,65408],"mapped",[12479]],[[65409,65409],"mapped",[12481]],[[65410,65410],"mapped",[12484]],[[65411,65411],"mapped",[12486]],[[65412,65412],"mapped",[12488]],[[65413,65413],"mapped",[12490]],[[65414,65414],"mapped",[12491]],[[65415,65415],"mapped",[12492]],[[65416,65416],"mapped",[12493]],[[65417,65417],"mapped",[12494]],[[65418,65418],"mapped",[12495]],[[65419,65419],"mapped",[12498]],[[65420,65420],"mapped",[12501]],[[65421,65421],"mapped",[12504]],[[65422,65422],"mapped",[12507]],[[65423,65423],"mapped",[12510]],[[65424,65424],"mapped",[12511]],[[65425,65425],"mapped",[12512]],[[65426,65426],"mapped",[12513]],[[65427,65427],"mapped",[12514]],[[65428,65428],"mapped",[12516]],[[65429,65429],"mapped",[12518]],[[65430,65430],"mapped",[12520]],[[65431,65431],"mapped",[12521]],[[65432,65432],"mapped",[12522]],[[65433,65433],"mapped",[12523]],[[65434,65434],"mapped",[12524]],[[65435,65435],"mapped",[12525]],[[65436,65436],"mapped",[12527]],[[65437,65437],"mapped",[12531]],[[65438,65438],"mapped",[12441]],[[65439,65439],"mapped",[12442]],[[65440,65440],"disallowed"],[[65441,65441],"mapped",[4352]],[[65442,65442],"mapped",[4353]],[[65443,65443],"mapped",[4522]],[[65444,65444],"mapped",[4354]],[[65445,65445],"mapped",[4524]],[[65446,65446],"mapped",[4525]],[[65447,65447],"mapped",[4355]],[[65448,65448],"mapped",[4356]],[[65449,65449],"mapped",[4357]],[[65450,65450],"mapped",[4528]],[[65451,65451],"mapped",[4529]],[[65452,65452],"mapped",[4530]],[[65453,65453],"mapped",[4531]],[[65454,65454],"mapped",[4532]],[[65455,65455],"mapped",[4533]],[[65456,65456],"mapped",[4378]],[[65457,65457],"mapped",[4358]],[[65458,65458],"mapped",[4359]],[[65459,65459],"mapped",[4360]],[[65460,65460],"mapped",[4385]],[[65461,65461],"mapped",[4361]],[[65462,65462],"mapped",[4362]],[[65463,65463],"mapped",[4363]],[[65464,65464],"mapped",[4364]],[[65465,65465],"mapped",[4365]],[[65466,65466],"mapped",[4366]],[[65467,65467],"mapped",[4367]],[[65468,65468],"mapped",[4368]],[[65469,65469],"mapped",[4369]],[[65470,65470],"mapped",[4370]],[[65471,65473],"disallowed"],[[65474,65474],"mapped",[4449]],[[65475,65475],"mapped",[4450]],[[65476,65476],"mapped",[4451]],[[65477,65477],"mapped",[4452]],[[65478,65478],"mapped",[4453]],[[65479,65479],"mapped",[4454]],[[65480,65481],"disallowed"],[[65482,65482],"mapped",[4455]],[[65483,65483],"mapped",[4456]],[[65484,65484],"mapped",[4457]],[[65485,65485],"mapped",[4458]],[[65486,65486],"mapped",[4459]],[[65487,65487],"mapped",[4460]],[[65488,65489],"disallowed"],[[65490,65490],"mapped",[4461]],[[65491,65491],"mapped",[4462]],[[65492,65492],"mapped",[4463]],[[65493,65493],"mapped",[4464]],[[65494,65494],"mapped",[4465]],[[65495,65495],"mapped",[4466]],[[65496,65497],"disallowed"],[[65498,65498],"mapped",[4467]],[[65499,65499],"mapped",[4468]],[[65500,65500],"mapped",[4469]],[[65501,65503],"disallowed"],[[65504,65504],"mapped",[162]],[[65505,65505],"mapped",[163]],[[65506,65506],"mapped",[172]],[[65507,65507],"disallowed_STD3_mapped",[32,772]],[[65508,65508],"mapped",[166]],[[65509,65509],"mapped",[165]],[[65510,65510],"mapped",[8361]],[[65511,65511],"disallowed"],[[65512,65512],"mapped",[9474]],[[65513,65513],"mapped",[8592]],[[65514,65514],"mapped",[8593]],[[65515,65515],"mapped",[8594]],[[65516,65516],"mapped",[8595]],[[65517,65517],"mapped",[9632]],[[65518,65518],"mapped",[9675]],[[65519,65528],"disallowed"],[[65529,65531],"disallowed"],[[65532,65532],"disallowed"],[[65533,65533],"disallowed"],[[65534,65535],"disallowed"],[[65536,65547],"valid"],[[65548,65548],"disallowed"],[[65549,65574],"valid"],[[65575,65575],"disallowed"],[[65576,65594],"valid"],[[65595,65595],"disallowed"],[[65596,65597],"valid"],[[65598,65598],"disallowed"],[[65599,65613],"valid"],[[65614,65615],"disallowed"],[[65616,65629],"valid"],[[65630,65663],"disallowed"],[[65664,65786],"valid"],[[65787,65791],"disallowed"],[[65792,65794],"valid",[],"NV8"],[[65795,65798],"disallowed"],[[65799,65843],"valid",[],"NV8"],[[65844,65846],"disallowed"],[[65847,65855],"valid",[],"NV8"],[[65856,65930],"valid",[],"NV8"],[[65931,65932],"valid",[],"NV8"],[[65933,65935],"disallowed"],[[65936,65947],"valid",[],"NV8"],[[65948,65951],"disallowed"],[[65952,65952],"valid",[],"NV8"],[[65953,65999],"disallowed"],[[66000,66044],"valid",[],"NV8"],[[66045,66045],"valid"],[[66046,66175],"disallowed"],[[66176,66204],"valid"],[[66205,66207],"disallowed"],[[66208,66256],"valid"],[[66257,66271],"disallowed"],[[66272,66272],"valid"],[[66273,66299],"valid",[],"NV8"],[[66300,66303],"disallowed"],[[66304,66334],"valid"],[[66335,66335],"valid"],[[66336,66339],"valid",[],"NV8"],[[66340,66351],"disallowed"],[[66352,66368],"valid"],[[66369,66369],"valid",[],"NV8"],[[66370,66377],"valid"],[[66378,66378],"valid",[],"NV8"],[[66379,66383],"disallowed"],[[66384,66426],"valid"],[[66427,66431],"disallowed"],[[66432,66461],"valid"],[[66462,66462],"disallowed"],[[66463,66463],"valid",[],"NV8"],[[66464,66499],"valid"],[[66500,66503],"disallowed"],[[66504,66511],"valid"],[[66512,66517],"valid",[],"NV8"],[[66518,66559],"disallowed"],[[66560,66560],"mapped",[66600]],[[66561,66561],"mapped",[66601]],[[66562,66562],"mapped",[66602]],[[66563,66563],"mapped",[66603]],[[66564,66564],"mapped",[66604]],[[66565,66565],"mapped",[66605]],[[66566,66566],"mapped",[66606]],[[66567,66567],"mapped",[66607]],[[66568,66568],"mapped",[66608]],[[66569,66569],"mapped",[66609]],[[66570,66570],"mapped",[66610]],[[66571,66571],"mapped",[66611]],[[66572,66572],"mapped",[66612]],[[66573,66573],"mapped",[66613]],[[66574,66574],"mapped",[66614]],[[66575,66575],"mapped",[66615]],[[66576,66576],"mapped",[66616]],[[66577,66577],"mapped",[66617]],[[66578,66578],"mapped",[66618]],[[66579,66579],"mapped",[66619]],[[66580,66580],"mapped",[66620]],[[66581,66581],"mapped",[66621]],[[66582,66582],"mapped",[66622]],[[66583,66583],"mapped",[66623]],[[66584,66584],"mapped",[66624]],[[66585,66585],"mapped",[66625]],[[66586,66586],"mapped",[66626]],[[66587,66587],"mapped",[66627]],[[66588,66588],"mapped",[66628]],[[66589,66589],"mapped",[66629]],[[66590,66590],"mapped",[66630]],[[66591,66591],"mapped",[66631]],[[66592,66592],"mapped",[66632]],[[66593,66593],"mapped",[66633]],[[66594,66594],"mapped",[66634]],[[66595,66595],"mapped",[66635]],[[66596,66596],"mapped",[66636]],[[66597,66597],"mapped",[66637]],[[66598,66598],"mapped",[66638]],[[66599,66599],"mapped",[66639]],[[66600,66637],"valid"],[[66638,66717],"valid"],[[66718,66719],"disallowed"],[[66720,66729],"valid"],[[66730,66815],"disallowed"],[[66816,66855],"valid"],[[66856,66863],"disallowed"],[[66864,66915],"valid"],[[66916,66926],"disallowed"],[[66927,66927],"valid",[],"NV8"],[[66928,67071],"disallowed"],[[67072,67382],"valid"],[[67383,67391],"disallowed"],[[67392,67413],"valid"],[[67414,67423],"disallowed"],[[67424,67431],"valid"],[[67432,67583],"disallowed"],[[67584,67589],"valid"],[[67590,67591],"disallowed"],[[67592,67592],"valid"],[[67593,67593],"disallowed"],[[67594,67637],"valid"],[[67638,67638],"disallowed"],[[67639,67640],"valid"],[[67641,67643],"disallowed"],[[67644,67644],"valid"],[[67645,67646],"disallowed"],[[67647,67647],"valid"],[[67648,67669],"valid"],[[67670,67670],"disallowed"],[[67671,67679],"valid",[],"NV8"],[[67680,67702],"valid"],[[67703,67711],"valid",[],"NV8"],[[67712,67742],"valid"],[[67743,67750],"disallowed"],[[67751,67759],"valid",[],"NV8"],[[67760,67807],"disallowed"],[[67808,67826],"valid"],[[67827,67827],"disallowed"],[[67828,67829],"valid"],[[67830,67834],"disallowed"],[[67835,67839],"valid",[],"NV8"],[[67840,67861],"valid"],[[67862,67865],"valid",[],"NV8"],[[67866,67867],"valid",[],"NV8"],[[67868,67870],"disallowed"],[[67871,67871],"valid",[],"NV8"],[[67872,67897],"valid"],[[67898,67902],"disallowed"],[[67903,67903],"valid",[],"NV8"],[[67904,67967],"disallowed"],[[67968,68023],"valid"],[[68024,68027],"disallowed"],[[68028,68029],"valid",[],"NV8"],[[68030,68031],"valid"],[[68032,68047],"valid",[],"NV8"],[[68048,68049],"disallowed"],[[68050,68095],"valid",[],"NV8"],[[68096,68099],"valid"],[[68100,68100],"disallowed"],[[68101,68102],"valid"],[[68103,68107],"disallowed"],[[68108,68115],"valid"],[[68116,68116],"disallowed"],[[68117,68119],"valid"],[[68120,68120],"disallowed"],[[68121,68147],"valid"],[[68148,68151],"disallowed"],[[68152,68154],"valid"],[[68155,68158],"disallowed"],[[68159,68159],"valid"],[[68160,68167],"valid",[],"NV8"],[[68168,68175],"disallowed"],[[68176,68184],"valid",[],"NV8"],[[68185,68191],"disallowed"],[[68192,68220],"valid"],[[68221,68223],"valid",[],"NV8"],[[68224,68252],"valid"],[[68253,68255],"valid",[],"NV8"],[[68256,68287],"disallowed"],[[68288,68295],"valid"],[[68296,68296],"valid",[],"NV8"],[[68297,68326],"valid"],[[68327,68330],"disallowed"],[[68331,68342],"valid",[],"NV8"],[[68343,68351],"disallowed"],[[68352,68405],"valid"],[[68406,68408],"disallowed"],[[68409,68415],"valid",[],"NV8"],[[68416,68437],"valid"],[[68438,68439],"disallowed"],[[68440,68447],"valid",[],"NV8"],[[68448,68466],"valid"],[[68467,68471],"disallowed"],[[68472,68479],"valid",[],"NV8"],[[68480,68497],"valid"],[[68498,68504],"disallowed"],[[68505,68508],"valid",[],"NV8"],[[68509,68520],"disallowed"],[[68521,68527],"valid",[],"NV8"],[[68528,68607],"disallowed"],[[68608,68680],"valid"],[[68681,68735],"disallowed"],[[68736,68736],"mapped",[68800]],[[68737,68737],"mapped",[68801]],[[68738,68738],"mapped",[68802]],[[68739,68739],"mapped",[68803]],[[68740,68740],"mapped",[68804]],[[68741,68741],"mapped",[68805]],[[68742,68742],"mapped",[68806]],[[68743,68743],"mapped",[68807]],[[68744,68744],"mapped",[68808]],[[68745,68745],"mapped",[68809]],[[68746,68746],"mapped",[68810]],[[68747,68747],"mapped",[68811]],[[68748,68748],"mapped",[68812]],[[68749,68749],"mapped",[68813]],[[68750,68750],"mapped",[68814]],[[68751,68751],"mapped",[68815]],[[68752,68752],"mapped",[68816]],[[68753,68753],"mapped",[68817]],[[68754,68754],"mapped",[68818]],[[68755,68755],"mapped",[68819]],[[68756,68756],"mapped",[68820]],[[68757,68757],"mapped",[68821]],[[68758,68758],"mapped",[68822]],[[68759,68759],"mapped",[68823]],[[68760,68760],"mapped",[68824]],[[68761,68761],"mapped",[68825]],[[68762,68762],"mapped",[68826]],[[68763,68763],"mapped",[68827]],[[68764,68764],"mapped",[68828]],[[68765,68765],"mapped",[68829]],[[68766,68766],"mapped",[68830]],[[68767,68767],"mapped",[68831]],[[68768,68768],"mapped",[68832]],[[68769,68769],"mapped",[68833]],[[68770,68770],"mapped",[68834]],[[68771,68771],"mapped",[68835]],[[68772,68772],"mapped",[68836]],[[68773,68773],"mapped",[68837]],[[68774,68774],"mapped",[68838]],[[68775,68775],"mapped",[68839]],[[68776,68776],"mapped",[68840]],[[68777,68777],"mapped",[68841]],[[68778,68778],"mapped",[68842]],[[68779,68779],"mapped",[68843]],[[68780,68780],"mapped",[68844]],[[68781,68781],"mapped",[68845]],[[68782,68782],"mapped",[68846]],[[68783,68783],"mapped",[68847]],[[68784,68784],"mapped",[68848]],[[68785,68785],"mapped",[68849]],[[68786,68786],"mapped",[68850]],[[68787,68799],"disallowed"],[[68800,68850],"valid"],[[68851,68857],"disallowed"],[[68858,68863],"valid",[],"NV8"],[[68864,69215],"disallowed"],[[69216,69246],"valid",[],"NV8"],[[69247,69631],"disallowed"],[[69632,69702],"valid"],[[69703,69709],"valid",[],"NV8"],[[69710,69713],"disallowed"],[[69714,69733],"valid",[],"NV8"],[[69734,69743],"valid"],[[69744,69758],"disallowed"],[[69759,69759],"valid"],[[69760,69818],"valid"],[[69819,69820],"valid",[],"NV8"],[[69821,69821],"disallowed"],[[69822,69825],"valid",[],"NV8"],[[69826,69839],"disallowed"],[[69840,69864],"valid"],[[69865,69871],"disallowed"],[[69872,69881],"valid"],[[69882,69887],"disallowed"],[[69888,69940],"valid"],[[69941,69941],"disallowed"],[[69942,69951],"valid"],[[69952,69955],"valid",[],"NV8"],[[69956,69967],"disallowed"],[[69968,70003],"valid"],[[70004,70005],"valid",[],"NV8"],[[70006,70006],"valid"],[[70007,70015],"disallowed"],[[70016,70084],"valid"],[[70085,70088],"valid",[],"NV8"],[[70089,70089],"valid",[],"NV8"],[[70090,70092],"valid"],[[70093,70093],"valid",[],"NV8"],[[70094,70095],"disallowed"],[[70096,70105],"valid"],[[70106,70106],"valid"],[[70107,70107],"valid",[],"NV8"],[[70108,70108],"valid"],[[70109,70111],"valid",[],"NV8"],[[70112,70112],"disallowed"],[[70113,70132],"valid",[],"NV8"],[[70133,70143],"disallowed"],[[70144,70161],"valid"],[[70162,70162],"disallowed"],[[70163,70199],"valid"],[[70200,70205],"valid",[],"NV8"],[[70206,70271],"disallowed"],[[70272,70278],"valid"],[[70279,70279],"disallowed"],[[70280,70280],"valid"],[[70281,70281],"disallowed"],[[70282,70285],"valid"],[[70286,70286],"disallowed"],[[70287,70301],"valid"],[[70302,70302],"disallowed"],[[70303,70312],"valid"],[[70313,70313],"valid",[],"NV8"],[[70314,70319],"disallowed"],[[70320,70378],"valid"],[[70379,70383],"disallowed"],[[70384,70393],"valid"],[[70394,70399],"disallowed"],[[70400,70400],"valid"],[[70401,70403],"valid"],[[70404,70404],"disallowed"],[[70405,70412],"valid"],[[70413,70414],"disallowed"],[[70415,70416],"valid"],[[70417,70418],"disallowed"],[[70419,70440],"valid"],[[70441,70441],"disallowed"],[[70442,70448],"valid"],[[70449,70449],"disallowed"],[[70450,70451],"valid"],[[70452,70452],"disallowed"],[[70453,70457],"valid"],[[70458,70459],"disallowed"],[[70460,70468],"valid"],[[70469,70470],"disallowed"],[[70471,70472],"valid"],[[70473,70474],"disallowed"],[[70475,70477],"valid"],[[70478,70479],"disallowed"],[[70480,70480],"valid"],[[70481,70486],"disallowed"],[[70487,70487],"valid"],[[70488,70492],"disallowed"],[[70493,70499],"valid"],[[70500,70501],"disallowed"],[[70502,70508],"valid"],[[70509,70511],"disallowed"],[[70512,70516],"valid"],[[70517,70783],"disallowed"],[[70784,70853],"valid"],[[70854,70854],"valid",[],"NV8"],[[70855,70855],"valid"],[[70856,70863],"disallowed"],[[70864,70873],"valid"],[[70874,71039],"disallowed"],[[71040,71093],"valid"],[[71094,71095],"disallowed"],[[71096,71104],"valid"],[[71105,71113],"valid",[],"NV8"],[[71114,71127],"valid",[],"NV8"],[[71128,71133],"valid"],[[71134,71167],"disallowed"],[[71168,71232],"valid"],[[71233,71235],"valid",[],"NV8"],[[71236,71236],"valid"],[[71237,71247],"disallowed"],[[71248,71257],"valid"],[[71258,71295],"disallowed"],[[71296,71351],"valid"],[[71352,71359],"disallowed"],[[71360,71369],"valid"],[[71370,71423],"disallowed"],[[71424,71449],"valid"],[[71450,71452],"disallowed"],[[71453,71467],"valid"],[[71468,71471],"disallowed"],[[71472,71481],"valid"],[[71482,71487],"valid",[],"NV8"],[[71488,71839],"disallowed"],[[71840,71840],"mapped",[71872]],[[71841,71841],"mapped",[71873]],[[71842,71842],"mapped",[71874]],[[71843,71843],"mapped",[71875]],[[71844,71844],"mapped",[71876]],[[71845,71845],"mapped",[71877]],[[71846,71846],"mapped",[71878]],[[71847,71847],"mapped",[71879]],[[71848,71848],"mapped",[71880]],[[71849,71849],"mapped",[71881]],[[71850,71850],"mapped",[71882]],[[71851,71851],"mapped",[71883]],[[71852,71852],"mapped",[71884]],[[71853,71853],"mapped",[71885]],[[71854,71854],"mapped",[71886]],[[71855,71855],"mapped",[71887]],[[71856,71856],"mapped",[71888]],[[71857,71857],"mapped",[71889]],[[71858,71858],"mapped",[71890]],[[71859,71859],"mapped",[71891]],[[71860,71860],"mapped",[71892]],[[71861,71861],"mapped",[71893]],[[71862,71862],"mapped",[71894]],[[71863,71863],"mapped",[71895]],[[71864,71864],"mapped",[71896]],[[71865,71865],"mapped",[71897]],[[71866,71866],"mapped",[71898]],[[71867,71867],"mapped",[71899]],[[71868,71868],"mapped",[71900]],[[71869,71869],"mapped",[71901]],[[71870,71870],"mapped",[71902]],[[71871,71871],"mapped",[71903]],[[71872,71913],"valid"],[[71914,71922],"valid",[],"NV8"],[[71923,71934],"disallowed"],[[71935,71935],"valid"],[[71936,72383],"disallowed"],[[72384,72440],"valid"],[[72441,73727],"disallowed"],[[73728,74606],"valid"],[[74607,74648],"valid"],[[74649,74649],"valid"],[[74650,74751],"disallowed"],[[74752,74850],"valid",[],"NV8"],[[74851,74862],"valid",[],"NV8"],[[74863,74863],"disallowed"],[[74864,74867],"valid",[],"NV8"],[[74868,74868],"valid",[],"NV8"],[[74869,74879],"disallowed"],[[74880,75075],"valid"],[[75076,77823],"disallowed"],[[77824,78894],"valid"],[[78895,82943],"disallowed"],[[82944,83526],"valid"],[[83527,92159],"disallowed"],[[92160,92728],"valid"],[[92729,92735],"disallowed"],[[92736,92766],"valid"],[[92767,92767],"disallowed"],[[92768,92777],"valid"],[[92778,92781],"disallowed"],[[92782,92783],"valid",[],"NV8"],[[92784,92879],"disallowed"],[[92880,92909],"valid"],[[92910,92911],"disallowed"],[[92912,92916],"valid"],[[92917,92917],"valid",[],"NV8"],[[92918,92927],"disallowed"],[[92928,92982],"valid"],[[92983,92991],"valid",[],"NV8"],[[92992,92995],"valid"],[[92996,92997],"valid",[],"NV8"],[[92998,93007],"disallowed"],[[93008,93017],"valid"],[[93018,93018],"disallowed"],[[93019,93025],"valid",[],"NV8"],[[93026,93026],"disallowed"],[[93027,93047],"valid"],[[93048,93052],"disallowed"],[[93053,93071],"valid"],[[93072,93951],"disallowed"],[[93952,94020],"valid"],[[94021,94031],"disallowed"],[[94032,94078],"valid"],[[94079,94094],"disallowed"],[[94095,94111],"valid"],[[94112,110591],"disallowed"],[[110592,110593],"valid"],[[110594,113663],"disallowed"],[[113664,113770],"valid"],[[113771,113775],"disallowed"],[[113776,113788],"valid"],[[113789,113791],"disallowed"],[[113792,113800],"valid"],[[113801,113807],"disallowed"],[[113808,113817],"valid"],[[113818,113819],"disallowed"],[[113820,113820],"valid",[],"NV8"],[[113821,113822],"valid"],[[113823,113823],"valid",[],"NV8"],[[113824,113827],"ignored"],[[113828,118783],"disallowed"],[[118784,119029],"valid",[],"NV8"],[[119030,119039],"disallowed"],[[119040,119078],"valid",[],"NV8"],[[119079,119080],"disallowed"],[[119081,119081],"valid",[],"NV8"],[[119082,119133],"valid",[],"NV8"],[[119134,119134],"mapped",[119127,119141]],[[119135,119135],"mapped",[119128,119141]],[[119136,119136],"mapped",[119128,119141,119150]],[[119137,119137],"mapped",[119128,119141,119151]],[[119138,119138],"mapped",[119128,119141,119152]],[[119139,119139],"mapped",[119128,119141,119153]],[[119140,119140],"mapped",[119128,119141,119154]],[[119141,119154],"valid",[],"NV8"],[[119155,119162],"disallowed"],[[119163,119226],"valid",[],"NV8"],[[119227,119227],"mapped",[119225,119141]],[[119228,119228],"mapped",[119226,119141]],[[119229,119229],"mapped",[119225,119141,119150]],[[119230,119230],"mapped",[119226,119141,119150]],[[119231,119231],"mapped",[119225,119141,119151]],[[119232,119232],"mapped",[119226,119141,119151]],[[119233,119261],"valid",[],"NV8"],[[119262,119272],"valid",[],"NV8"],[[119273,119295],"disallowed"],[[119296,119365],"valid",[],"NV8"],[[119366,119551],"disallowed"],[[119552,119638],"valid",[],"NV8"],[[119639,119647],"disallowed"],[[119648,119665],"valid",[],"NV8"],[[119666,119807],"disallowed"],[[119808,119808],"mapped",[97]],[[119809,119809],"mapped",[98]],[[119810,119810],"mapped",[99]],[[119811,119811],"mapped",[100]],[[119812,119812],"mapped",[101]],[[119813,119813],"mapped",[102]],[[119814,119814],"mapped",[103]],[[119815,119815],"mapped",[104]],[[119816,119816],"mapped",[105]],[[119817,119817],"mapped",[106]],[[119818,119818],"mapped",[107]],[[119819,119819],"mapped",[108]],[[119820,119820],"mapped",[109]],[[119821,119821],"mapped",[110]],[[119822,119822],"mapped",[111]],[[119823,119823],"mapped",[112]],[[119824,119824],"mapped",[113]],[[119825,119825],"mapped",[114]],[[119826,119826],"mapped",[115]],[[119827,119827],"mapped",[116]],[[119828,119828],"mapped",[117]],[[119829,119829],"mapped",[118]],[[119830,119830],"mapped",[119]],[[119831,119831],"mapped",[120]],[[119832,119832],"mapped",[121]],[[119833,119833],"mapped",[122]],[[119834,119834],"mapped",[97]],[[119835,119835],"mapped",[98]],[[119836,119836],"mapped",[99]],[[119837,119837],"mapped",[100]],[[119838,119838],"mapped",[101]],[[119839,119839],"mapped",[102]],[[119840,119840],"mapped",[103]],[[119841,119841],"mapped",[104]],[[119842,119842],"mapped",[105]],[[119843,119843],"mapped",[106]],[[119844,119844],"mapped",[107]],[[119845,119845],"mapped",[108]],[[119846,119846],"mapped",[109]],[[119847,119847],"mapped",[110]],[[119848,119848],"mapped",[111]],[[119849,119849],"mapped",[112]],[[119850,119850],"mapped",[113]],[[119851,119851],"mapped",[114]],[[119852,119852],"mapped",[115]],[[119853,119853],"mapped",[116]],[[119854,119854],"mapped",[117]],[[119855,119855],"mapped",[118]],[[119856,119856],"mapped",[119]],[[119857,119857],"mapped",[120]],[[119858,119858],"mapped",[121]],[[119859,119859],"mapped",[122]],[[119860,119860],"mapped",[97]],[[119861,119861],"mapped",[98]],[[119862,119862],"mapped",[99]],[[119863,119863],"mapped",[100]],[[119864,119864],"mapped",[101]],[[119865,119865],"mapped",[102]],[[119866,119866],"mapped",[103]],[[119867,119867],"mapped",[104]],[[119868,119868],"mapped",[105]],[[119869,119869],"mapped",[106]],[[119870,119870],"mapped",[107]],[[119871,119871],"mapped",[108]],[[119872,119872],"mapped",[109]],[[119873,119873],"mapped",[110]],[[119874,119874],"mapped",[111]],[[119875,119875],"mapped",[112]],[[119876,119876],"mapped",[113]],[[119877,119877],"mapped",[114]],[[119878,119878],"mapped",[115]],[[119879,119879],"mapped",[116]],[[119880,119880],"mapped",[117]],[[119881,119881],"mapped",[118]],[[119882,119882],"mapped",[119]],[[119883,119883],"mapped",[120]],[[119884,119884],"mapped",[121]],[[119885,119885],"mapped",[122]],[[119886,119886],"mapped",[97]],[[119887,119887],"mapped",[98]],[[119888,119888],"mapped",[99]],[[119889,119889],"mapped",[100]],[[119890,119890],"mapped",[101]],[[119891,119891],"mapped",[102]],[[119892,119892],"mapped",[103]],[[119893,119893],"disallowed"],[[119894,119894],"mapped",[105]],[[119895,119895],"mapped",[106]],[[119896,119896],"mapped",[107]],[[119897,119897],"mapped",[108]],[[119898,119898],"mapped",[109]],[[119899,119899],"mapped",[110]],[[119900,119900],"mapped",[111]],[[119901,119901],"mapped",[112]],[[119902,119902],"mapped",[113]],[[119903,119903],"mapped",[114]],[[119904,119904],"mapped",[115]],[[119905,119905],"mapped",[116]],[[119906,119906],"mapped",[117]],[[119907,119907],"mapped",[118]],[[119908,119908],"mapped",[119]],[[119909,119909],"mapped",[120]],[[119910,119910],"mapped",[121]],[[119911,119911],"mapped",[122]],[[119912,119912],"mapped",[97]],[[119913,119913],"mapped",[98]],[[119914,119914],"mapped",[99]],[[119915,119915],"mapped",[100]],[[119916,119916],"mapped",[101]],[[119917,119917],"mapped",[102]],[[119918,119918],"mapped",[103]],[[119919,119919],"mapped",[104]],[[119920,119920],"mapped",[105]],[[119921,119921],"mapped",[106]],[[119922,119922],"mapped",[107]],[[119923,119923],"mapped",[108]],[[119924,119924],"mapped",[109]],[[119925,119925],"mapped",[110]],[[119926,119926],"mapped",[111]],[[119927,119927],"mapped",[112]],[[119928,119928],"mapped",[113]],[[119929,119929],"mapped",[114]],[[119930,119930],"mapped",[115]],[[119931,119931],"mapped",[116]],[[119932,119932],"mapped",[117]],[[119933,119933],"mapped",[118]],[[119934,119934],"mapped",[119]],[[119935,119935],"mapped",[120]],[[119936,119936],"mapped",[121]],[[119937,119937],"mapped",[122]],[[119938,119938],"mapped",[97]],[[119939,119939],"mapped",[98]],[[119940,119940],"mapped",[99]],[[119941,119941],"mapped",[100]],[[119942,119942],"mapped",[101]],[[119943,119943],"mapped",[102]],[[119944,119944],"mapped",[103]],[[119945,119945],"mapped",[104]],[[119946,119946],"mapped",[105]],[[119947,119947],"mapped",[106]],[[119948,119948],"mapped",[107]],[[119949,119949],"mapped",[108]],[[119950,119950],"mapped",[109]],[[119951,119951],"mapped",[110]],[[119952,119952],"mapped",[111]],[[119953,119953],"mapped",[112]],[[119954,119954],"mapped",[113]],[[119955,119955],"mapped",[114]],[[119956,119956],"mapped",[115]],[[119957,119957],"mapped",[116]],[[119958,119958],"mapped",[117]],[[119959,119959],"mapped",[118]],[[119960,119960],"mapped",[119]],[[119961,119961],"mapped",[120]],[[119962,119962],"mapped",[121]],[[119963,119963],"mapped",[122]],[[119964,119964],"mapped",[97]],[[119965,119965],"disallowed"],[[119966,119966],"mapped",[99]],[[119967,119967],"mapped",[100]],[[119968,119969],"disallowed"],[[119970,119970],"mapped",[103]],[[119971,119972],"disallowed"],[[119973,119973],"mapped",[106]],[[119974,119974],"mapped",[107]],[[119975,119976],"disallowed"],[[119977,119977],"mapped",[110]],[[119978,119978],"mapped",[111]],[[119979,119979],"mapped",[112]],[[119980,119980],"mapped",[113]],[[119981,119981],"disallowed"],[[119982,119982],"mapped",[115]],[[119983,119983],"mapped",[116]],[[119984,119984],"mapped",[117]],[[119985,119985],"mapped",[118]],[[119986,119986],"mapped",[119]],[[119987,119987],"mapped",[120]],[[119988,119988],"mapped",[121]],[[119989,119989],"mapped",[122]],[[119990,119990],"mapped",[97]],[[119991,119991],"mapped",[98]],[[119992,119992],"mapped",[99]],[[119993,119993],"mapped",[100]],[[119994,119994],"disallowed"],[[119995,119995],"mapped",[102]],[[119996,119996],"disallowed"],[[119997,119997],"mapped",[104]],[[119998,119998],"mapped",[105]],[[119999,119999],"mapped",[106]],[[120000,120000],"mapped",[107]],[[120001,120001],"mapped",[108]],[[120002,120002],"mapped",[109]],[[120003,120003],"mapped",[110]],[[120004,120004],"disallowed"],[[120005,120005],"mapped",[112]],[[120006,120006],"mapped",[113]],[[120007,120007],"mapped",[114]],[[120008,120008],"mapped",[115]],[[120009,120009],"mapped",[116]],[[120010,120010],"mapped",[117]],[[120011,120011],"mapped",[118]],[[120012,120012],"mapped",[119]],[[120013,120013],"mapped",[120]],[[120014,120014],"mapped",[121]],[[120015,120015],"mapped",[122]],[[120016,120016],"mapped",[97]],[[120017,120017],"mapped",[98]],[[120018,120018],"mapped",[99]],[[120019,120019],"mapped",[100]],[[120020,120020],"mapped",[101]],[[120021,120021],"mapped",[102]],[[120022,120022],"mapped",[103]],[[120023,120023],"mapped",[104]],[[120024,120024],"mapped",[105]],[[120025,120025],"mapped",[106]],[[120026,120026],"mapped",[107]],[[120027,120027],"mapped",[108]],[[120028,120028],"mapped",[109]],[[120029,120029],"mapped",[110]],[[120030,120030],"mapped",[111]],[[120031,120031],"mapped",[112]],[[120032,120032],"mapped",[113]],[[120033,120033],"mapped",[114]],[[120034,120034],"mapped",[115]],[[120035,120035],"mapped",[116]],[[120036,120036],"mapped",[117]],[[120037,120037],"mapped",[118]],[[120038,120038],"mapped",[119]],[[120039,120039],"mapped",[120]],[[120040,120040],"mapped",[121]],[[120041,120041],"mapped",[122]],[[120042,120042],"mapped",[97]],[[120043,120043],"mapped",[98]],[[120044,120044],"mapped",[99]],[[120045,120045],"mapped",[100]],[[120046,120046],"mapped",[101]],[[120047,120047],"mapped",[102]],[[120048,120048],"mapped",[103]],[[120049,120049],"mapped",[104]],[[120050,120050],"mapped",[105]],[[120051,120051],"mapped",[106]],[[120052,120052],"mapped",[107]],[[120053,120053],"mapped",[108]],[[120054,120054],"mapped",[109]],[[120055,120055],"mapped",[110]],[[120056,120056],"mapped",[111]],[[120057,120057],"mapped",[112]],[[120058,120058],"mapped",[113]],[[120059,120059],"mapped",[114]],[[120060,120060],"mapped",[115]],[[120061,120061],"mapped",[116]],[[120062,120062],"mapped",[117]],[[120063,120063],"mapped",[118]],[[120064,120064],"mapped",[119]],[[120065,120065],"mapped",[120]],[[120066,120066],"mapped",[121]],[[120067,120067],"mapped",[122]],[[120068,120068],"mapped",[97]],[[120069,120069],"mapped",[98]],[[120070,120070],"disallowed"],[[120071,120071],"mapped",[100]],[[120072,120072],"mapped",[101]],[[120073,120073],"mapped",[102]],[[120074,120074],"mapped",[103]],[[120075,120076],"disallowed"],[[120077,120077],"mapped",[106]],[[120078,120078],"mapped",[107]],[[120079,120079],"mapped",[108]],[[120080,120080],"mapped",[109]],[[120081,120081],"mapped",[110]],[[120082,120082],"mapped",[111]],[[120083,120083],"mapped",[112]],[[120084,120084],"mapped",[113]],[[120085,120085],"disallowed"],[[120086,120086],"mapped",[115]],[[120087,120087],"mapped",[116]],[[120088,120088],"mapped",[117]],[[120089,120089],"mapped",[118]],[[120090,120090],"mapped",[119]],[[120091,120091],"mapped",[120]],[[120092,120092],"mapped",[121]],[[120093,120093],"disallowed"],[[120094,120094],"mapped",[97]],[[120095,120095],"mapped",[98]],[[120096,120096],"mapped",[99]],[[120097,120097],"mapped",[100]],[[120098,120098],"mapped",[101]],[[120099,120099],"mapped",[102]],[[120100,120100],"mapped",[103]],[[120101,120101],"mapped",[104]],[[120102,120102],"mapped",[105]],[[120103,120103],"mapped",[106]],[[120104,120104],"mapped",[107]],[[120105,120105],"mapped",[108]],[[120106,120106],"mapped",[109]],[[120107,120107],"mapped",[110]],[[120108,120108],"mapped",[111]],[[120109,120109],"mapped",[112]],[[120110,120110],"mapped",[113]],[[120111,120111],"mapped",[114]],[[120112,120112],"mapped",[115]],[[120113,120113],"mapped",[116]],[[120114,120114],"mapped",[117]],[[120115,120115],"mapped",[118]],[[120116,120116],"mapped",[119]],[[120117,120117],"mapped",[120]],[[120118,120118],"mapped",[121]],[[120119,120119],"mapped",[122]],[[120120,120120],"mapped",[97]],[[120121,120121],"mapped",[98]],[[120122,120122],"disallowed"],[[120123,120123],"mapped",[100]],[[120124,120124],"mapped",[101]],[[120125,120125],"mapped",[102]],[[120126,120126],"mapped",[103]],[[120127,120127],"disallowed"],[[120128,120128],"mapped",[105]],[[120129,120129],"mapped",[106]],[[120130,120130],"mapped",[107]],[[120131,120131],"mapped",[108]],[[120132,120132],"mapped",[109]],[[120133,120133],"disallowed"],[[120134,120134],"mapped",[111]],[[120135,120137],"disallowed"],[[120138,120138],"mapped",[115]],[[120139,120139],"mapped",[116]],[[120140,120140],"mapped",[117]],[[120141,120141],"mapped",[118]],[[120142,120142],"mapped",[119]],[[120143,120143],"mapped",[120]],[[120144,120144],"mapped",[121]],[[120145,120145],"disallowed"],[[120146,120146],"mapped",[97]],[[120147,120147],"mapped",[98]],[[120148,120148],"mapped",[99]],[[120149,120149],"mapped",[100]],[[120150,120150],"mapped",[101]],[[120151,120151],"mapped",[102]],[[120152,120152],"mapped",[103]],[[120153,120153],"mapped",[104]],[[120154,120154],"mapped",[105]],[[120155,120155],"mapped",[106]],[[120156,120156],"mapped",[107]],[[120157,120157],"mapped",[108]],[[120158,120158],"mapped",[109]],[[120159,120159],"mapped",[110]],[[120160,120160],"mapped",[111]],[[120161,120161],"mapped",[112]],[[120162,120162],"mapped",[113]],[[120163,120163],"mapped",[114]],[[120164,120164],"mapped",[115]],[[120165,120165],"mapped",[116]],[[120166,120166],"mapped",[117]],[[120167,120167],"mapped",[118]],[[120168,120168],"mapped",[119]],[[120169,120169],"mapped",[120]],[[120170,120170],"mapped",[121]],[[120171,120171],"mapped",[122]],[[120172,120172],"mapped",[97]],[[120173,120173],"mapped",[98]],[[120174,120174],"mapped",[99]],[[120175,120175],"mapped",[100]],[[120176,120176],"mapped",[101]],[[120177,120177],"mapped",[102]],[[120178,120178],"mapped",[103]],[[120179,120179],"mapped",[104]],[[120180,120180],"mapped",[105]],[[120181,120181],"mapped",[106]],[[120182,120182],"mapped",[107]],[[120183,120183],"mapped",[108]],[[120184,120184],"mapped",[109]],[[120185,120185],"mapped",[110]],[[120186,120186],"mapped",[111]],[[120187,120187],"mapped",[112]],[[120188,120188],"mapped",[113]],[[120189,120189],"mapped",[114]],[[120190,120190],"mapped",[115]],[[120191,120191],"mapped",[116]],[[120192,120192],"mapped",[117]],[[120193,120193],"mapped",[118]],[[120194,120194],"mapped",[119]],[[120195,120195],"mapped",[120]],[[120196,120196],"mapped",[121]],[[120197,120197],"mapped",[122]],[[120198,120198],"mapped",[97]],[[120199,120199],"mapped",[98]],[[120200,120200],"mapped",[99]],[[120201,120201],"mapped",[100]],[[120202,120202],"mapped",[101]],[[120203,120203],"mapped",[102]],[[120204,120204],"mapped",[103]],[[120205,120205],"mapped",[104]],[[120206,120206],"mapped",[105]],[[120207,120207],"mapped",[106]],[[120208,120208],"mapped",[107]],[[120209,120209],"mapped",[108]],[[120210,120210],"mapped",[109]],[[120211,120211],"mapped",[110]],[[120212,120212],"mapped",[111]],[[120213,120213],"mapped",[112]],[[120214,120214],"mapped",[113]],[[120215,120215],"mapped",[114]],[[120216,120216],"mapped",[115]],[[120217,120217],"mapped",[116]],[[120218,120218],"mapped",[117]],[[120219,120219],"mapped",[118]],[[120220,120220],"mapped",[119]],[[120221,120221],"mapped",[120]],[[120222,120222],"mapped",[121]],[[120223,120223],"mapped",[122]],[[120224,120224],"mapped",[97]],[[120225,120225],"mapped",[98]],[[120226,120226],"mapped",[99]],[[120227,120227],"mapped",[100]],[[120228,120228],"mapped",[101]],[[120229,120229],"mapped",[102]],[[120230,120230],"mapped",[103]],[[120231,120231],"mapped",[104]],[[120232,120232],"mapped",[105]],[[120233,120233],"mapped",[106]],[[120234,120234],"mapped",[107]],[[120235,120235],"mapped",[108]],[[120236,120236],"mapped",[109]],[[120237,120237],"mapped",[110]],[[120238,120238],"mapped",[111]],[[120239,120239],"mapped",[112]],[[120240,120240],"mapped",[113]],[[120241,120241],"mapped",[114]],[[120242,120242],"mapped",[115]],[[120243,120243],"mapped",[116]],[[120244,120244],"mapped",[117]],[[120245,120245],"mapped",[118]],[[120246,120246],"mapped",[119]],[[120247,120247],"mapped",[120]],[[120248,120248],"mapped",[121]],[[120249,120249],"mapped",[122]],[[120250,120250],"mapped",[97]],[[120251,120251],"mapped",[98]],[[120252,120252],"mapped",[99]],[[120253,120253],"mapped",[100]],[[120254,120254],"mapped",[101]],[[120255,120255],"mapped",[102]],[[120256,120256],"mapped",[103]],[[120257,120257],"mapped",[104]],[[120258,120258],"mapped",[105]],[[120259,120259],"mapped",[106]],[[120260,120260],"mapped",[107]],[[120261,120261],"mapped",[108]],[[120262,120262],"mapped",[109]],[[120263,120263],"mapped",[110]],[[120264,120264],"mapped",[111]],[[120265,120265],"mapped",[112]],[[120266,120266],"mapped",[113]],[[120267,120267],"mapped",[114]],[[120268,120268],"mapped",[115]],[[120269,120269],"mapped",[116]],[[120270,120270],"mapped",[117]],[[120271,120271],"mapped",[118]],[[120272,120272],"mapped",[119]],[[120273,120273],"mapped",[120]],[[120274,120274],"mapped",[121]],[[120275,120275],"mapped",[122]],[[120276,120276],"mapped",[97]],[[120277,120277],"mapped",[98]],[[120278,120278],"mapped",[99]],[[120279,120279],"mapped",[100]],[[120280,120280],"mapped",[101]],[[120281,120281],"mapped",[102]],[[120282,120282],"mapped",[103]],[[120283,120283],"mapped",[104]],[[120284,120284],"mapped",[105]],[[120285,120285],"mapped",[106]],[[120286,120286],"mapped",[107]],[[120287,120287],"mapped",[108]],[[120288,120288],"mapped",[109]],[[120289,120289],"mapped",[110]],[[120290,120290],"mapped",[111]],[[120291,120291],"mapped",[112]],[[120292,120292],"mapped",[113]],[[120293,120293],"mapped",[114]],[[120294,120294],"mapped",[115]],[[120295,120295],"mapped",[116]],[[120296,120296],"mapped",[117]],[[120297,120297],"mapped",[118]],[[120298,120298],"mapped",[119]],[[120299,120299],"mapped",[120]],[[120300,120300],"mapped",[121]],[[120301,120301],"mapped",[122]],[[120302,120302],"mapped",[97]],[[120303,120303],"mapped",[98]],[[120304,120304],"mapped",[99]],[[120305,120305],"mapped",[100]],[[120306,120306],"mapped",[101]],[[120307,120307],"mapped",[102]],[[120308,120308],"mapped",[103]],[[120309,120309],"mapped",[104]],[[120310,120310],"mapped",[105]],[[120311,120311],"mapped",[106]],[[120312,120312],"mapped",[107]],[[120313,120313],"mapped",[108]],[[120314,120314],"mapped",[109]],[[120315,120315],"mapped",[110]],[[120316,120316],"mapped",[111]],[[120317,120317],"mapped",[112]],[[120318,120318],"mapped",[113]],[[120319,120319],"mapped",[114]],[[120320,120320],"mapped",[115]],[[120321,120321],"mapped",[116]],[[120322,120322],"mapped",[117]],[[120323,120323],"mapped",[118]],[[120324,120324],"mapped",[119]],[[120325,120325],"mapped",[120]],[[120326,120326],"mapped",[121]],[[120327,120327],"mapped",[122]],[[120328,120328],"mapped",[97]],[[120329,120329],"mapped",[98]],[[120330,120330],"mapped",[99]],[[120331,120331],"mapped",[100]],[[120332,120332],"mapped",[101]],[[120333,120333],"mapped",[102]],[[120334,120334],"mapped",[103]],[[120335,120335],"mapped",[104]],[[120336,120336],"mapped",[105]],[[120337,120337],"mapped",[106]],[[120338,120338],"mapped",[107]],[[120339,120339],"mapped",[108]],[[120340,120340],"mapped",[109]],[[120341,120341],"mapped",[110]],[[120342,120342],"mapped",[111]],[[120343,120343],"mapped",[112]],[[120344,120344],"mapped",[113]],[[120345,120345],"mapped",[114]],[[120346,120346],"mapped",[115]],[[120347,120347],"mapped",[116]],[[120348,120348],"mapped",[117]],[[120349,120349],"mapped",[118]],[[120350,120350],"mapped",[119]],[[120351,120351],"mapped",[120]],[[120352,120352],"mapped",[121]],[[120353,120353],"mapped",[122]],[[120354,120354],"mapped",[97]],[[120355,120355],"mapped",[98]],[[120356,120356],"mapped",[99]],[[120357,120357],"mapped",[100]],[[120358,120358],"mapped",[101]],[[120359,120359],"mapped",[102]],[[120360,120360],"mapped",[103]],[[120361,120361],"mapped",[104]],[[120362,120362],"mapped",[105]],[[120363,120363],"mapped",[106]],[[120364,120364],"mapped",[107]],[[120365,120365],"mapped",[108]],[[120366,120366],"mapped",[109]],[[120367,120367],"mapped",[110]],[[120368,120368],"mapped",[111]],[[120369,120369],"mapped",[112]],[[120370,120370],"mapped",[113]],[[120371,120371],"mapped",[114]],[[120372,120372],"mapped",[115]],[[120373,120373],"mapped",[116]],[[120374,120374],"mapped",[117]],[[120375,120375],"mapped",[118]],[[120376,120376],"mapped",[119]],[[120377,120377],"mapped",[120]],[[120378,120378],"mapped",[121]],[[120379,120379],"mapped",[122]],[[120380,120380],"mapped",[97]],[[120381,120381],"mapped",[98]],[[120382,120382],"mapped",[99]],[[120383,120383],"mapped",[100]],[[120384,120384],"mapped",[101]],[[120385,120385],"mapped",[102]],[[120386,120386],"mapped",[103]],[[120387,120387],"mapped",[104]],[[120388,120388],"mapped",[105]],[[120389,120389],"mapped",[106]],[[120390,120390],"mapped",[107]],[[120391,120391],"mapped",[108]],[[120392,120392],"mapped",[109]],[[120393,120393],"mapped",[110]],[[120394,120394],"mapped",[111]],[[120395,120395],"mapped",[112]],[[120396,120396],"mapped",[113]],[[120397,120397],"mapped",[114]],[[120398,120398],"mapped",[115]],[[120399,120399],"mapped",[116]],[[120400,120400],"mapped",[117]],[[120401,120401],"mapped",[118]],[[120402,120402],"mapped",[119]],[[120403,120403],"mapped",[120]],[[120404,120404],"mapped",[121]],[[120405,120405],"mapped",[122]],[[120406,120406],"mapped",[97]],[[120407,120407],"mapped",[98]],[[120408,120408],"mapped",[99]],[[120409,120409],"mapped",[100]],[[120410,120410],"mapped",[101]],[[120411,120411],"mapped",[102]],[[120412,120412],"mapped",[103]],[[120413,120413],"mapped",[104]],[[120414,120414],"mapped",[105]],[[120415,120415],"mapped",[106]],[[120416,120416],"mapped",[107]],[[120417,120417],"mapped",[108]],[[120418,120418],"mapped",[109]],[[120419,120419],"mapped",[110]],[[120420,120420],"mapped",[111]],[[120421,120421],"mapped",[112]],[[120422,120422],"mapped",[113]],[[120423,120423],"mapped",[114]],[[120424,120424],"mapped",[115]],[[120425,120425],"mapped",[116]],[[120426,120426],"mapped",[117]],[[120427,120427],"mapped",[118]],[[120428,120428],"mapped",[119]],[[120429,120429],"mapped",[120]],[[120430,120430],"mapped",[121]],[[120431,120431],"mapped",[122]],[[120432,120432],"mapped",[97]],[[120433,120433],"mapped",[98]],[[120434,120434],"mapped",[99]],[[120435,120435],"mapped",[100]],[[120436,120436],"mapped",[101]],[[120437,120437],"mapped",[102]],[[120438,120438],"mapped",[103]],[[120439,120439],"mapped",[104]],[[120440,120440],"mapped",[105]],[[120441,120441],"mapped",[106]],[[120442,120442],"mapped",[107]],[[120443,120443],"mapped",[108]],[[120444,120444],"mapped",[109]],[[120445,120445],"mapped",[110]],[[120446,120446],"mapped",[111]],[[120447,120447],"mapped",[112]],[[120448,120448],"mapped",[113]],[[120449,120449],"mapped",[114]],[[120450,120450],"mapped",[115]],[[120451,120451],"mapped",[116]],[[120452,120452],"mapped",[117]],[[120453,120453],"mapped",[118]],[[120454,120454],"mapped",[119]],[[120455,120455],"mapped",[120]],[[120456,120456],"mapped",[121]],[[120457,120457],"mapped",[122]],[[120458,120458],"mapped",[97]],[[120459,120459],"mapped",[98]],[[120460,120460],"mapped",[99]],[[120461,120461],"mapped",[100]],[[120462,120462],"mapped",[101]],[[120463,120463],"mapped",[102]],[[120464,120464],"mapped",[103]],[[120465,120465],"mapped",[104]],[[120466,120466],"mapped",[105]],[[120467,120467],"mapped",[106]],[[120468,120468],"mapped",[107]],[[120469,120469],"mapped",[108]],[[120470,120470],"mapped",[109]],[[120471,120471],"mapped",[110]],[[120472,120472],"mapped",[111]],[[120473,120473],"mapped",[112]],[[120474,120474],"mapped",[113]],[[120475,120475],"mapped",[114]],[[120476,120476],"mapped",[115]],[[120477,120477],"mapped",[116]],[[120478,120478],"mapped",[117]],[[120479,120479],"mapped",[118]],[[120480,120480],"mapped",[119]],[[120481,120481],"mapped",[120]],[[120482,120482],"mapped",[121]],[[120483,120483],"mapped",[122]],[[120484,120484],"mapped",[305]],[[120485,120485],"mapped",[567]],[[120486,120487],"disallowed"],[[120488,120488],"mapped",[945]],[[120489,120489],"mapped",[946]],[[120490,120490],"mapped",[947]],[[120491,120491],"mapped",[948]],[[120492,120492],"mapped",[949]],[[120493,120493],"mapped",[950]],[[120494,120494],"mapped",[951]],[[120495,120495],"mapped",[952]],[[120496,120496],"mapped",[953]],[[120497,120497],"mapped",[954]],[[120498,120498],"mapped",[955]],[[120499,120499],"mapped",[956]],[[120500,120500],"mapped",[957]],[[120501,120501],"mapped",[958]],[[120502,120502],"mapped",[959]],[[120503,120503],"mapped",[960]],[[120504,120504],"mapped",[961]],[[120505,120505],"mapped",[952]],[[120506,120506],"mapped",[963]],[[120507,120507],"mapped",[964]],[[120508,120508],"mapped",[965]],[[120509,120509],"mapped",[966]],[[120510,120510],"mapped",[967]],[[120511,120511],"mapped",[968]],[[120512,120512],"mapped",[969]],[[120513,120513],"mapped",[8711]],[[120514,120514],"mapped",[945]],[[120515,120515],"mapped",[946]],[[120516,120516],"mapped",[947]],[[120517,120517],"mapped",[948]],[[120518,120518],"mapped",[949]],[[120519,120519],"mapped",[950]],[[120520,120520],"mapped",[951]],[[120521,120521],"mapped",[952]],[[120522,120522],"mapped",[953]],[[120523,120523],"mapped",[954]],[[120524,120524],"mapped",[955]],[[120525,120525],"mapped",[956]],[[120526,120526],"mapped",[957]],[[120527,120527],"mapped",[958]],[[120528,120528],"mapped",[959]],[[120529,120529],"mapped",[960]],[[120530,120530],"mapped",[961]],[[120531,120532],"mapped",[963]],[[120533,120533],"mapped",[964]],[[120534,120534],"mapped",[965]],[[120535,120535],"mapped",[966]],[[120536,120536],"mapped",[967]],[[120537,120537],"mapped",[968]],[[120538,120538],"mapped",[969]],[[120539,120539],"mapped",[8706]],[[120540,120540],"mapped",[949]],[[120541,120541],"mapped",[952]],[[120542,120542],"mapped",[954]],[[120543,120543],"mapped",[966]],[[120544,120544],"mapped",[961]],[[120545,120545],"mapped",[960]],[[120546,120546],"mapped",[945]],[[120547,120547],"mapped",[946]],[[120548,120548],"mapped",[947]],[[120549,120549],"mapped",[948]],[[120550,120550],"mapped",[949]],[[120551,120551],"mapped",[950]],[[120552,120552],"mapped",[951]],[[120553,120553],"mapped",[952]],[[120554,120554],"mapped",[953]],[[120555,120555],"mapped",[954]],[[120556,120556],"mapped",[955]],[[120557,120557],"mapped",[956]],[[120558,120558],"mapped",[957]],[[120559,120559],"mapped",[958]],[[120560,120560],"mapped",[959]],[[120561,120561],"mapped",[960]],[[120562,120562],"mapped",[961]],[[120563,120563],"mapped",[952]],[[120564,120564],"mapped",[963]],[[120565,120565],"mapped",[964]],[[120566,120566],"mapped",[965]],[[120567,120567],"mapped",[966]],[[120568,120568],"mapped",[967]],[[120569,120569],"mapped",[968]],[[120570,120570],"mapped",[969]],[[120571,120571],"mapped",[8711]],[[120572,120572],"mapped",[945]],[[120573,120573],"mapped",[946]],[[120574,120574],"mapped",[947]],[[120575,120575],"mapped",[948]],[[120576,120576],"mapped",[949]],[[120577,120577],"mapped",[950]],[[120578,120578],"mapped",[951]],[[120579,120579],"mapped",[952]],[[120580,120580],"mapped",[953]],[[120581,120581],"mapped",[954]],[[120582,120582],"mapped",[955]],[[120583,120583],"mapped",[956]],[[120584,120584],"mapped",[957]],[[120585,120585],"mapped",[958]],[[120586,120586],"mapped",[959]],[[120587,120587],"mapped",[960]],[[120588,120588],"mapped",[961]],[[120589,120590],"mapped",[963]],[[120591,120591],"mapped",[964]],[[120592,120592],"mapped",[965]],[[120593,120593],"mapped",[966]],[[120594,120594],"mapped",[967]],[[120595,120595],"mapped",[968]],[[120596,120596],"mapped",[969]],[[120597,120597],"mapped",[8706]],[[120598,120598],"mapped",[949]],[[120599,120599],"mapped",[952]],[[120600,120600],"mapped",[954]],[[120601,120601],"mapped",[966]],[[120602,120602],"mapped",[961]],[[120603,120603],"mapped",[960]],[[120604,120604],"mapped",[945]],[[120605,120605],"mapped",[946]],[[120606,120606],"mapped",[947]],[[120607,120607],"mapped",[948]],[[120608,120608],"mapped",[949]],[[120609,120609],"mapped",[950]],[[120610,120610],"mapped",[951]],[[120611,120611],"mapped",[952]],[[120612,120612],"mapped",[953]],[[120613,120613],"mapped",[954]],[[120614,120614],"mapped",[955]],[[120615,120615],"mapped",[956]],[[120616,120616],"mapped",[957]],[[120617,120617],"mapped",[958]],[[120618,120618],"mapped",[959]],[[120619,120619],"mapped",[960]],[[120620,120620],"mapped",[961]],[[120621,120621],"mapped",[952]],[[120622,120622],"mapped",[963]],[[120623,120623],"mapped",[964]],[[120624,120624],"mapped",[965]],[[120625,120625],"mapped",[966]],[[120626,120626],"mapped",[967]],[[120627,120627],"mapped",[968]],[[120628,120628],"mapped",[969]],[[120629,120629],"mapped",[8711]],[[120630,120630],"mapped",[945]],[[120631,120631],"mapped",[946]],[[120632,120632],"mapped",[947]],[[120633,120633],"mapped",[948]],[[120634,120634],"mapped",[949]],[[120635,120635],"mapped",[950]],[[120636,120636],"mapped",[951]],[[120637,120637],"mapped",[952]],[[120638,120638],"mapped",[953]],[[120639,120639],"mapped",[954]],[[120640,120640],"mapped",[955]],[[120641,120641],"mapped",[956]],[[120642,120642],"mapped",[957]],[[120643,120643],"mapped",[958]],[[120644,120644],"mapped",[959]],[[120645,120645],"mapped",[960]],[[120646,120646],"mapped",[961]],[[120647,120648],"mapped",[963]],[[120649,120649],"mapped",[964]],[[120650,120650],"mapped",[965]],[[120651,120651],"mapped",[966]],[[120652,120652],"mapped",[967]],[[120653,120653],"mapped",[968]],[[120654,120654],"mapped",[969]],[[120655,120655],"mapped",[8706]],[[120656,120656],"mapped",[949]],[[120657,120657],"mapped",[952]],[[120658,120658],"mapped",[954]],[[120659,120659],"mapped",[966]],[[120660,120660],"mapped",[961]],[[120661,120661],"mapped",[960]],[[120662,120662],"mapped",[945]],[[120663,120663],"mapped",[946]],[[120664,120664],"mapped",[947]],[[120665,120665],"mapped",[948]],[[120666,120666],"mapped",[949]],[[120667,120667],"mapped",[950]],[[120668,120668],"mapped",[951]],[[120669,120669],"mapped",[952]],[[120670,120670],"mapped",[953]],[[120671,120671],"mapped",[954]],[[120672,120672],"mapped",[955]],[[120673,120673],"mapped",[956]],[[120674,120674],"mapped",[957]],[[120675,120675],"mapped",[958]],[[120676,120676],"mapped",[959]],[[120677,120677],"mapped",[960]],[[120678,120678],"mapped",[961]],[[120679,120679],"mapped",[952]],[[120680,120680],"mapped",[963]],[[120681,120681],"mapped",[964]],[[120682,120682],"mapped",[965]],[[120683,120683],"mapped",[966]],[[120684,120684],"mapped",[967]],[[120685,120685],"mapped",[968]],[[120686,120686],"mapped",[969]],[[120687,120687],"mapped",[8711]],[[120688,120688],"mapped",[945]],[[120689,120689],"mapped",[946]],[[120690,120690],"mapped",[947]],[[120691,120691],"mapped",[948]],[[120692,120692],"mapped",[949]],[[120693,120693],"mapped",[950]],[[120694,120694],"mapped",[951]],[[120695,120695],"mapped",[952]],[[120696,120696],"mapped",[953]],[[120697,120697],"mapped",[954]],[[120698,120698],"mapped",[955]],[[120699,120699],"mapped",[956]],[[120700,120700],"mapped",[957]],[[120701,120701],"mapped",[958]],[[120702,120702],"mapped",[959]],[[120703,120703],"mapped",[960]],[[120704,120704],"mapped",[961]],[[120705,120706],"mapped",[963]],[[120707,120707],"mapped",[964]],[[120708,120708],"mapped",[965]],[[120709,120709],"mapped",[966]],[[120710,120710],"mapped",[967]],[[120711,120711],"mapped",[968]],[[120712,120712],"mapped",[969]],[[120713,120713],"mapped",[8706]],[[120714,120714],"mapped",[949]],[[120715,120715],"mapped",[952]],[[120716,120716],"mapped",[954]],[[120717,120717],"mapped",[966]],[[120718,120718],"mapped",[961]],[[120719,120719],"mapped",[960]],[[120720,120720],"mapped",[945]],[[120721,120721],"mapped",[946]],[[120722,120722],"mapped",[947]],[[120723,120723],"mapped",[948]],[[120724,120724],"mapped",[949]],[[120725,120725],"mapped",[950]],[[120726,120726],"mapped",[951]],[[120727,120727],"mapped",[952]],[[120728,120728],"mapped",[953]],[[120729,120729],"mapped",[954]],[[120730,120730],"mapped",[955]],[[120731,120731],"mapped",[956]],[[120732,120732],"mapped",[957]],[[120733,120733],"mapped",[958]],[[120734,120734],"mapped",[959]],[[120735,120735],"mapped",[960]],[[120736,120736],"mapped",[961]],[[120737,120737],"mapped",[952]],[[120738,120738],"mapped",[963]],[[120739,120739],"mapped",[964]],[[120740,120740],"mapped",[965]],[[120741,120741],"mapped",[966]],[[120742,120742],"mapped",[967]],[[120743,120743],"mapped",[968]],[[120744,120744],"mapped",[969]],[[120745,120745],"mapped",[8711]],[[120746,120746],"mapped",[945]],[[120747,120747],"mapped",[946]],[[120748,120748],"mapped",[947]],[[120749,120749],"mapped",[948]],[[120750,120750],"mapped",[949]],[[120751,120751],"mapped",[950]],[[120752,120752],"mapped",[951]],[[120753,120753],"mapped",[952]],[[120754,120754],"mapped",[953]],[[120755,120755],"mapped",[954]],[[120756,120756],"mapped",[955]],[[120757,120757],"mapped",[956]],[[120758,120758],"mapped",[957]],[[120759,120759],"mapped",[958]],[[120760,120760],"mapped",[959]],[[120761,120761],"mapped",[960]],[[120762,120762],"mapped",[961]],[[120763,120764],"mapped",[963]],[[120765,120765],"mapped",[964]],[[120766,120766],"mapped",[965]],[[120767,120767],"mapped",[966]],[[120768,120768],"mapped",[967]],[[120769,120769],"mapped",[968]],[[120770,120770],"mapped",[969]],[[120771,120771],"mapped",[8706]],[[120772,120772],"mapped",[949]],[[120773,120773],"mapped",[952]],[[120774,120774],"mapped",[954]],[[120775,120775],"mapped",[966]],[[120776,120776],"mapped",[961]],[[120777,120777],"mapped",[960]],[[120778,120779],"mapped",[989]],[[120780,120781],"disallowed"],[[120782,120782],"mapped",[48]],[[120783,120783],"mapped",[49]],[[120784,120784],"mapped",[50]],[[120785,120785],"mapped",[51]],[[120786,120786],"mapped",[52]],[[120787,120787],"mapped",[53]],[[120788,120788],"mapped",[54]],[[120789,120789],"mapped",[55]],[[120790,120790],"mapped",[56]],[[120791,120791],"mapped",[57]],[[120792,120792],"mapped",[48]],[[120793,120793],"mapped",[49]],[[120794,120794],"mapped",[50]],[[120795,120795],"mapped",[51]],[[120796,120796],"mapped",[52]],[[120797,120797],"mapped",[53]],[[120798,120798],"mapped",[54]],[[120799,120799],"mapped",[55]],[[120800,120800],"mapped",[56]],[[120801,120801],"mapped",[57]],[[120802,120802],"mapped",[48]],[[120803,120803],"mapped",[49]],[[120804,120804],"mapped",[50]],[[120805,120805],"mapped",[51]],[[120806,120806],"mapped",[52]],[[120807,120807],"mapped",[53]],[[120808,120808],"mapped",[54]],[[120809,120809],"mapped",[55]],[[120810,120810],"mapped",[56]],[[120811,120811],"mapped",[57]],[[120812,120812],"mapped",[48]],[[120813,120813],"mapped",[49]],[[120814,120814],"mapped",[50]],[[120815,120815],"mapped",[51]],[[120816,120816],"mapped",[52]],[[120817,120817],"mapped",[53]],[[120818,120818],"mapped",[54]],[[120819,120819],"mapped",[55]],[[120820,120820],"mapped",[56]],[[120821,120821],"mapped",[57]],[[120822,120822],"mapped",[48]],[[120823,120823],"mapped",[49]],[[120824,120824],"mapped",[50]],[[120825,120825],"mapped",[51]],[[120826,120826],"mapped",[52]],[[120827,120827],"mapped",[53]],[[120828,120828],"mapped",[54]],[[120829,120829],"mapped",[55]],[[120830,120830],"mapped",[56]],[[120831,120831],"mapped",[57]],[[120832,121343],"valid",[],"NV8"],[[121344,121398],"valid"],[[121399,121402],"valid",[],"NV8"],[[121403,121452],"valid"],[[121453,121460],"valid",[],"NV8"],[[121461,121461],"valid"],[[121462,121475],"valid",[],"NV8"],[[121476,121476],"valid"],[[121477,121483],"valid",[],"NV8"],[[121484,121498],"disallowed"],[[121499,121503],"valid"],[[121504,121504],"disallowed"],[[121505,121519],"valid"],[[121520,124927],"disallowed"],[[124928,125124],"valid"],[[125125,125126],"disallowed"],[[125127,125135],"valid",[],"NV8"],[[125136,125142],"valid"],[[125143,126463],"disallowed"],[[126464,126464],"mapped",[1575]],[[126465,126465],"mapped",[1576]],[[126466,126466],"mapped",[1580]],[[126467,126467],"mapped",[1583]],[[126468,126468],"disallowed"],[[126469,126469],"mapped",[1608]],[[126470,126470],"mapped",[1586]],[[126471,126471],"mapped",[1581]],[[126472,126472],"mapped",[1591]],[[126473,126473],"mapped",[1610]],[[126474,126474],"mapped",[1603]],[[126475,126475],"mapped",[1604]],[[126476,126476],"mapped",[1605]],[[126477,126477],"mapped",[1606]],[[126478,126478],"mapped",[1587]],[[126479,126479],"mapped",[1593]],[[126480,126480],"mapped",[1601]],[[126481,126481],"mapped",[1589]],[[126482,126482],"mapped",[1602]],[[126483,126483],"mapped",[1585]],[[126484,126484],"mapped",[1588]],[[126485,126485],"mapped",[1578]],[[126486,126486],"mapped",[1579]],[[126487,126487],"mapped",[1582]],[[126488,126488],"mapped",[1584]],[[126489,126489],"mapped",[1590]],[[126490,126490],"mapped",[1592]],[[126491,126491],"mapped",[1594]],[[126492,126492],"mapped",[1646]],[[126493,126493],"mapped",[1722]],[[126494,126494],"mapped",[1697]],[[126495,126495],"mapped",[1647]],[[126496,126496],"disallowed"],[[126497,126497],"mapped",[1576]],[[126498,126498],"mapped",[1580]],[[126499,126499],"disallowed"],[[126500,126500],"mapped",[1607]],[[126501,126502],"disallowed"],[[126503,126503],"mapped",[1581]],[[126504,126504],"disallowed"],[[126505,126505],"mapped",[1610]],[[126506,126506],"mapped",[1603]],[[126507,126507],"mapped",[1604]],[[126508,126508],"mapped",[1605]],[[126509,126509],"mapped",[1606]],[[126510,126510],"mapped",[1587]],[[126511,126511],"mapped",[1593]],[[126512,126512],"mapped",[1601]],[[126513,126513],"mapped",[1589]],[[126514,126514],"mapped",[1602]],[[126515,126515],"disallowed"],[[126516,126516],"mapped",[1588]],[[126517,126517],"mapped",[1578]],[[126518,126518],"mapped",[1579]],[[126519,126519],"mapped",[1582]],[[126520,126520],"disallowed"],[[126521,126521],"mapped",[1590]],[[126522,126522],"disallowed"],[[126523,126523],"mapped",[1594]],[[126524,126529],"disallowed"],[[126530,126530],"mapped",[1580]],[[126531,126534],"disallowed"],[[126535,126535],"mapped",[1581]],[[126536,126536],"disallowed"],[[126537,126537],"mapped",[1610]],[[126538,126538],"disallowed"],[[126539,126539],"mapped",[1604]],[[126540,126540],"disallowed"],[[126541,126541],"mapped",[1606]],[[126542,126542],"mapped",[1587]],[[126543,126543],"mapped",[1593]],[[126544,126544],"disallowed"],[[126545,126545],"mapped",[1589]],[[126546,126546],"mapped",[1602]],[[126547,126547],"disallowed"],[[126548,126548],"mapped",[1588]],[[126549,126550],"disallowed"],[[126551,126551],"mapped",[1582]],[[126552,126552],"disallowed"],[[126553,126553],"mapped",[1590]],[[126554,126554],"disallowed"],[[126555,126555],"mapped",[1594]],[[126556,126556],"disallowed"],[[126557,126557],"mapped",[1722]],[[126558,126558],"disallowed"],[[126559,126559],"mapped",[1647]],[[126560,126560],"disallowed"],[[126561,126561],"mapped",[1576]],[[126562,126562],"mapped",[1580]],[[126563,126563],"disallowed"],[[126564,126564],"mapped",[1607]],[[126565,126566],"disallowed"],[[126567,126567],"mapped",[1581]],[[126568,126568],"mapped",[1591]],[[126569,126569],"mapped",[1610]],[[126570,126570],"mapped",[1603]],[[126571,126571],"disallowed"],[[126572,126572],"mapped",[1605]],[[126573,126573],"mapped",[1606]],[[126574,126574],"mapped",[1587]],[[126575,126575],"mapped",[1593]],[[126576,126576],"mapped",[1601]],[[126577,126577],"mapped",[1589]],[[126578,126578],"mapped",[1602]],[[126579,126579],"disallowed"],[[126580,126580],"mapped",[1588]],[[126581,126581],"mapped",[1578]],[[126582,126582],"mapped",[1579]],[[126583,126583],"mapped",[1582]],[[126584,126584],"disallowed"],[[126585,126585],"mapped",[1590]],[[126586,126586],"mapped",[1592]],[[126587,126587],"mapped",[1594]],[[126588,126588],"mapped",[1646]],[[126589,126589],"disallowed"],[[126590,126590],"mapped",[1697]],[[126591,126591],"disallowed"],[[126592,126592],"mapped",[1575]],[[126593,126593],"mapped",[1576]],[[126594,126594],"mapped",[1580]],[[126595,126595],"mapped",[1583]],[[126596,126596],"mapped",[1607]],[[126597,126597],"mapped",[1608]],[[126598,126598],"mapped",[1586]],[[126599,126599],"mapped",[1581]],[[126600,126600],"mapped",[1591]],[[126601,126601],"mapped",[1610]],[[126602,126602],"disallowed"],[[126603,126603],"mapped",[1604]],[[126604,126604],"mapped",[1605]],[[126605,126605],"mapped",[1606]],[[126606,126606],"mapped",[1587]],[[126607,126607],"mapped",[1593]],[[126608,126608],"mapped",[1601]],[[126609,126609],"mapped",[1589]],[[126610,126610],"mapped",[1602]],[[126611,126611],"mapped",[1585]],[[126612,126612],"mapped",[1588]],[[126613,126613],"mapped",[1578]],[[126614,126614],"mapped",[1579]],[[126615,126615],"mapped",[1582]],[[126616,126616],"mapped",[1584]],[[126617,126617],"mapped",[1590]],[[126618,126618],"mapped",[1592]],[[126619,126619],"mapped",[1594]],[[126620,126624],"disallowed"],[[126625,126625],"mapped",[1576]],[[126626,126626],"mapped",[1580]],[[126627,126627],"mapped",[1583]],[[126628,126628],"disallowed"],[[126629,126629],"mapped",[1608]],[[126630,126630],"mapped",[1586]],[[126631,126631],"mapped",[1581]],[[126632,126632],"mapped",[1591]],[[126633,126633],"mapped",[1610]],[[126634,126634],"disallowed"],[[126635,126635],"mapped",[1604]],[[126636,126636],"mapped",[1605]],[[126637,126637],"mapped",[1606]],[[126638,126638],"mapped",[1587]],[[126639,126639],"mapped",[1593]],[[126640,126640],"mapped",[1601]],[[126641,126641],"mapped",[1589]],[[126642,126642],"mapped",[1602]],[[126643,126643],"mapped",[1585]],[[126644,126644],"mapped",[1588]],[[126645,126645],"mapped",[1578]],[[126646,126646],"mapped",[1579]],[[126647,126647],"mapped",[1582]],[[126648,126648],"mapped",[1584]],[[126649,126649],"mapped",[1590]],[[126650,126650],"mapped",[1592]],[[126651,126651],"mapped",[1594]],[[126652,126703],"disallowed"],[[126704,126705],"valid",[],"NV8"],[[126706,126975],"disallowed"],[[126976,127019],"valid",[],"NV8"],[[127020,127023],"disallowed"],[[127024,127123],"valid",[],"NV8"],[[127124,127135],"disallowed"],[[127136,127150],"valid",[],"NV8"],[[127151,127152],"disallowed"],[[127153,127166],"valid",[],"NV8"],[[127167,127167],"valid",[],"NV8"],[[127168,127168],"disallowed"],[[127169,127183],"valid",[],"NV8"],[[127184,127184],"disallowed"],[[127185,127199],"valid",[],"NV8"],[[127200,127221],"valid",[],"NV8"],[[127222,127231],"disallowed"],[[127232,127232],"disallowed"],[[127233,127233],"disallowed_STD3_mapped",[48,44]],[[127234,127234],"disallowed_STD3_mapped",[49,44]],[[127235,127235],"disallowed_STD3_mapped",[50,44]],[[127236,127236],"disallowed_STD3_mapped",[51,44]],[[127237,127237],"disallowed_STD3_mapped",[52,44]],[[127238,127238],"disallowed_STD3_mapped",[53,44]],[[127239,127239],"disallowed_STD3_mapped",[54,44]],[[127240,127240],"disallowed_STD3_mapped",[55,44]],[[127241,127241],"disallowed_STD3_mapped",[56,44]],[[127242,127242],"disallowed_STD3_mapped",[57,44]],[[127243,127244],"valid",[],"NV8"],[[127245,127247],"disallowed"],[[127248,127248],"disallowed_STD3_mapped",[40,97,41]],[[127249,127249],"disallowed_STD3_mapped",[40,98,41]],[[127250,127250],"disallowed_STD3_mapped",[40,99,41]],[[127251,127251],"disallowed_STD3_mapped",[40,100,41]],[[127252,127252],"disallowed_STD3_mapped",[40,101,41]],[[127253,127253],"disallowed_STD3_mapped",[40,102,41]],[[127254,127254],"disallowed_STD3_mapped",[40,103,41]],[[127255,127255],"disallowed_STD3_mapped",[40,104,41]],[[127256,127256],"disallowed_STD3_mapped",[40,105,41]],[[127257,127257],"disallowed_STD3_mapped",[40,106,41]],[[127258,127258],"disallowed_STD3_mapped",[40,107,41]],[[127259,127259],"disallowed_STD3_mapped",[40,108,41]],[[127260,127260],"disallowed_STD3_mapped",[40,109,41]],[[127261,127261],"disallowed_STD3_mapped",[40,110,41]],[[127262,127262],"disallowed_STD3_mapped",[40,111,41]],[[127263,127263],"disallowed_STD3_mapped",[40,112,41]],[[127264,127264],"disallowed_STD3_mapped",[40,113,41]],[[127265,127265],"disallowed_STD3_mapped",[40,114,41]],[[127266,127266],"disallowed_STD3_mapped",[40,115,41]],[[127267,127267],"disallowed_STD3_mapped",[40,116,41]],[[127268,127268],"disallowed_STD3_mapped",[40,117,41]],[[127269,127269],"disallowed_STD3_mapped",[40,118,41]],[[127270,127270],"disallowed_STD3_mapped",[40,119,41]],[[127271,127271],"disallowed_STD3_mapped",[40,120,41]],[[127272,127272],"disallowed_STD3_mapped",[40,121,41]],[[127273,127273],"disallowed_STD3_mapped",[40,122,41]],[[127274,127274],"mapped",[12308,115,12309]],[[127275,127275],"mapped",[99]],[[127276,127276],"mapped",[114]],[[127277,127277],"mapped",[99,100]],[[127278,127278],"mapped",[119,122]],[[127279,127279],"disallowed"],[[127280,127280],"mapped",[97]],[[127281,127281],"mapped",[98]],[[127282,127282],"mapped",[99]],[[127283,127283],"mapped",[100]],[[127284,127284],"mapped",[101]],[[127285,127285],"mapped",[102]],[[127286,127286],"mapped",[103]],[[127287,127287],"mapped",[104]],[[127288,127288],"mapped",[105]],[[127289,127289],"mapped",[106]],[[127290,127290],"mapped",[107]],[[127291,127291],"mapped",[108]],[[127292,127292],"mapped",[109]],[[127293,127293],"mapped",[110]],[[127294,127294],"mapped",[111]],[[127295,127295],"mapped",[112]],[[127296,127296],"mapped",[113]],[[127297,127297],"mapped",[114]],[[127298,127298],"mapped",[115]],[[127299,127299],"mapped",[116]],[[127300,127300],"mapped",[117]],[[127301,127301],"mapped",[118]],[[127302,127302],"mapped",[119]],[[127303,127303],"mapped",[120]],[[127304,127304],"mapped",[121]],[[127305,127305],"mapped",[122]],[[127306,127306],"mapped",[104,118]],[[127307,127307],"mapped",[109,118]],[[127308,127308],"mapped",[115,100]],[[127309,127309],"mapped",[115,115]],[[127310,127310],"mapped",[112,112,118]],[[127311,127311],"mapped",[119,99]],[[127312,127318],"valid",[],"NV8"],[[127319,127319],"valid",[],"NV8"],[[127320,127326],"valid",[],"NV8"],[[127327,127327],"valid",[],"NV8"],[[127328,127337],"valid",[],"NV8"],[[127338,127338],"mapped",[109,99]],[[127339,127339],"mapped",[109,100]],[[127340,127343],"disallowed"],[[127344,127352],"valid",[],"NV8"],[[127353,127353],"valid",[],"NV8"],[[127354,127354],"valid",[],"NV8"],[[127355,127356],"valid",[],"NV8"],[[127357,127358],"valid",[],"NV8"],[[127359,127359],"valid",[],"NV8"],[[127360,127369],"valid",[],"NV8"],[[127370,127373],"valid",[],"NV8"],[[127374,127375],"valid",[],"NV8"],[[127376,127376],"mapped",[100,106]],[[127377,127386],"valid",[],"NV8"],[[127387,127461],"disallowed"],[[127462,127487],"valid",[],"NV8"],[[127488,127488],"mapped",[12411,12363]],[[127489,127489],"mapped",[12467,12467]],[[127490,127490],"mapped",[12469]],[[127491,127503],"disallowed"],[[127504,127504],"mapped",[25163]],[[127505,127505],"mapped",[23383]],[[127506,127506],"mapped",[21452]],[[127507,127507],"mapped",[12487]],[[127508,127508],"mapped",[20108]],[[127509,127509],"mapped",[22810]],[[127510,127510],"mapped",[35299]],[[127511,127511],"mapped",[22825]],[[127512,127512],"mapped",[20132]],[[127513,127513],"mapped",[26144]],[[127514,127514],"mapped",[28961]],[[127515,127515],"mapped",[26009]],[[127516,127516],"mapped",[21069]],[[127517,127517],"mapped",[24460]],[[127518,127518],"mapped",[20877]],[[127519,127519],"mapped",[26032]],[[127520,127520],"mapped",[21021]],[[127521,127521],"mapped",[32066]],[[127522,127522],"mapped",[29983]],[[127523,127523],"mapped",[36009]],[[127524,127524],"mapped",[22768]],[[127525,127525],"mapped",[21561]],[[127526,127526],"mapped",[28436]],[[127527,127527],"mapped",[25237]],[[127528,127528],"mapped",[25429]],[[127529,127529],"mapped",[19968]],[[127530,127530],"mapped",[19977]],[[127531,127531],"mapped",[36938]],[[127532,127532],"mapped",[24038]],[[127533,127533],"mapped",[20013]],[[127534,127534],"mapped",[21491]],[[127535,127535],"mapped",[25351]],[[127536,127536],"mapped",[36208]],[[127537,127537],"mapped",[25171]],[[127538,127538],"mapped",[31105]],[[127539,127539],"mapped",[31354]],[[127540,127540],"mapped",[21512]],[[127541,127541],"mapped",[28288]],[[127542,127542],"mapped",[26377]],[[127543,127543],"mapped",[26376]],[[127544,127544],"mapped",[30003]],[[127545,127545],"mapped",[21106]],[[127546,127546],"mapped",[21942]],[[127547,127551],"disallowed"],[[127552,127552],"mapped",[12308,26412,12309]],[[127553,127553],"mapped",[12308,19977,12309]],[[127554,127554],"mapped",[12308,20108,12309]],[[127555,127555],"mapped",[12308,23433,12309]],[[127556,127556],"mapped",[12308,28857,12309]],[[127557,127557],"mapped",[12308,25171,12309]],[[127558,127558],"mapped",[12308,30423,12309]],[[127559,127559],"mapped",[12308,21213,12309]],[[127560,127560],"mapped",[12308,25943,12309]],[[127561,127567],"disallowed"],[[127568,127568],"mapped",[24471]],[[127569,127569],"mapped",[21487]],[[127570,127743],"disallowed"],[[127744,127776],"valid",[],"NV8"],[[127777,127788],"valid",[],"NV8"],[[127789,127791],"valid",[],"NV8"],[[127792,127797],"valid",[],"NV8"],[[127798,127798],"valid",[],"NV8"],[[127799,127868],"valid",[],"NV8"],[[127869,127869],"valid",[],"NV8"],[[127870,127871],"valid",[],"NV8"],[[127872,127891],"valid",[],"NV8"],[[127892,127903],"valid",[],"NV8"],[[127904,127940],"valid",[],"NV8"],[[127941,127941],"valid",[],"NV8"],[[127942,127946],"valid",[],"NV8"],[[127947,127950],"valid",[],"NV8"],[[127951,127955],"valid",[],"NV8"],[[127956,127967],"valid",[],"NV8"],[[127968,127984],"valid",[],"NV8"],[[127985,127991],"valid",[],"NV8"],[[127992,127999],"valid",[],"NV8"],[[128000,128062],"valid",[],"NV8"],[[128063,128063],"valid",[],"NV8"],[[128064,128064],"valid",[],"NV8"],[[128065,128065],"valid",[],"NV8"],[[128066,128247],"valid",[],"NV8"],[[128248,128248],"valid",[],"NV8"],[[128249,128252],"valid",[],"NV8"],[[128253,128254],"valid",[],"NV8"],[[128255,128255],"valid",[],"NV8"],[[128256,128317],"valid",[],"NV8"],[[128318,128319],"valid",[],"NV8"],[[128320,128323],"valid",[],"NV8"],[[128324,128330],"valid",[],"NV8"],[[128331,128335],"valid",[],"NV8"],[[128336,128359],"valid",[],"NV8"],[[128360,128377],"valid",[],"NV8"],[[128378,128378],"disallowed"],[[128379,128419],"valid",[],"NV8"],[[128420,128420],"disallowed"],[[128421,128506],"valid",[],"NV8"],[[128507,128511],"valid",[],"NV8"],[[128512,128512],"valid",[],"NV8"],[[128513,128528],"valid",[],"NV8"],[[128529,128529],"valid",[],"NV8"],[[128530,128532],"valid",[],"NV8"],[[128533,128533],"valid",[],"NV8"],[[128534,128534],"valid",[],"NV8"],[[128535,128535],"valid",[],"NV8"],[[128536,128536],"valid",[],"NV8"],[[128537,128537],"valid",[],"NV8"],[[128538,128538],"valid",[],"NV8"],[[128539,128539],"valid",[],"NV8"],[[128540,128542],"valid",[],"NV8"],[[128543,128543],"valid",[],"NV8"],[[128544,128549],"valid",[],"NV8"],[[128550,128551],"valid",[],"NV8"],[[128552,128555],"valid",[],"NV8"],[[128556,128556],"valid",[],"NV8"],[[128557,128557],"valid",[],"NV8"],[[128558,128559],"valid",[],"NV8"],[[128560,128563],"valid",[],"NV8"],[[128564,128564],"valid",[],"NV8"],[[128565,128576],"valid",[],"NV8"],[[128577,128578],"valid",[],"NV8"],[[128579,128580],"valid",[],"NV8"],[[128581,128591],"valid",[],"NV8"],[[128592,128639],"valid",[],"NV8"],[[128640,128709],"valid",[],"NV8"],[[128710,128719],"valid",[],"NV8"],[[128720,128720],"valid",[],"NV8"],[[128721,128735],"disallowed"],[[128736,128748],"valid",[],"NV8"],[[128749,128751],"disallowed"],[[128752,128755],"valid",[],"NV8"],[[128756,128767],"disallowed"],[[128768,128883],"valid",[],"NV8"],[[128884,128895],"disallowed"],[[128896,128980],"valid",[],"NV8"],[[128981,129023],"disallowed"],[[129024,129035],"valid",[],"NV8"],[[129036,129039],"disallowed"],[[129040,129095],"valid",[],"NV8"],[[129096,129103],"disallowed"],[[129104,129113],"valid",[],"NV8"],[[129114,129119],"disallowed"],[[129120,129159],"valid",[],"NV8"],[[129160,129167],"disallowed"],[[129168,129197],"valid",[],"NV8"],[[129198,129295],"disallowed"],[[129296,129304],"valid",[],"NV8"],[[129305,129407],"disallowed"],[[129408,129412],"valid",[],"NV8"],[[129413,129471],"disallowed"],[[129472,129472],"valid",[],"NV8"],[[129473,131069],"disallowed"],[[131070,131071],"disallowed"],[[131072,173782],"valid"],[[173783,173823],"disallowed"],[[173824,177972],"valid"],[[177973,177983],"disallowed"],[[177984,178205],"valid"],[[178206,178207],"disallowed"],[[178208,183969],"valid"],[[183970,194559],"disallowed"],[[194560,194560],"mapped",[20029]],[[194561,194561],"mapped",[20024]],[[194562,194562],"mapped",[20033]],[[194563,194563],"mapped",[131362]],[[194564,194564],"mapped",[20320]],[[194565,194565],"mapped",[20398]],[[194566,194566],"mapped",[20411]],[[194567,194567],"mapped",[20482]],[[194568,194568],"mapped",[20602]],[[194569,194569],"mapped",[20633]],[[194570,194570],"mapped",[20711]],[[194571,194571],"mapped",[20687]],[[194572,194572],"mapped",[13470]],[[194573,194573],"mapped",[132666]],[[194574,194574],"mapped",[20813]],[[194575,194575],"mapped",[20820]],[[194576,194576],"mapped",[20836]],[[194577,194577],"mapped",[20855]],[[194578,194578],"mapped",[132380]],[[194579,194579],"mapped",[13497]],[[194580,194580],"mapped",[20839]],[[194581,194581],"mapped",[20877]],[[194582,194582],"mapped",[132427]],[[194583,194583],"mapped",[20887]],[[194584,194584],"mapped",[20900]],[[194585,194585],"mapped",[20172]],[[194586,194586],"mapped",[20908]],[[194587,194587],"mapped",[20917]],[[194588,194588],"mapped",[168415]],[[194589,194589],"mapped",[20981]],[[194590,194590],"mapped",[20995]],[[194591,194591],"mapped",[13535]],[[194592,194592],"mapped",[21051]],[[194593,194593],"mapped",[21062]],[[194594,194594],"mapped",[21106]],[[194595,194595],"mapped",[21111]],[[194596,194596],"mapped",[13589]],[[194597,194597],"mapped",[21191]],[[194598,194598],"mapped",[21193]],[[194599,194599],"mapped",[21220]],[[194600,194600],"mapped",[21242]],[[194601,194601],"mapped",[21253]],[[194602,194602],"mapped",[21254]],[[194603,194603],"mapped",[21271]],[[194604,194604],"mapped",[21321]],[[194605,194605],"mapped",[21329]],[[194606,194606],"mapped",[21338]],[[194607,194607],"mapped",[21363]],[[194608,194608],"mapped",[21373]],[[194609,194611],"mapped",[21375]],[[194612,194612],"mapped",[133676]],[[194613,194613],"mapped",[28784]],[[194614,194614],"mapped",[21450]],[[194615,194615],"mapped",[21471]],[[194616,194616],"mapped",[133987]],[[194617,194617],"mapped",[21483]],[[194618,194618],"mapped",[21489]],[[194619,194619],"mapped",[21510]],[[194620,194620],"mapped",[21662]],[[194621,194621],"mapped",[21560]],[[194622,194622],"mapped",[21576]],[[194623,194623],"mapped",[21608]],[[194624,194624],"mapped",[21666]],[[194625,194625],"mapped",[21750]],[[194626,194626],"mapped",[21776]],[[194627,194627],"mapped",[21843]],[[194628,194628],"mapped",[21859]],[[194629,194630],"mapped",[21892]],[[194631,194631],"mapped",[21913]],[[194632,194632],"mapped",[21931]],[[194633,194633],"mapped",[21939]],[[194634,194634],"mapped",[21954]],[[194635,194635],"mapped",[22294]],[[194636,194636],"mapped",[22022]],[[194637,194637],"mapped",[22295]],[[194638,194638],"mapped",[22097]],[[194639,194639],"mapped",[22132]],[[194640,194640],"mapped",[20999]],[[194641,194641],"mapped",[22766]],[[194642,194642],"mapped",[22478]],[[194643,194643],"mapped",[22516]],[[194644,194644],"mapped",[22541]],[[194645,194645],"mapped",[22411]],[[194646,194646],"mapped",[22578]],[[194647,194647],"mapped",[22577]],[[194648,194648],"mapped",[22700]],[[194649,194649],"mapped",[136420]],[[194650,194650],"mapped",[22770]],[[194651,194651],"mapped",[22775]],[[194652,194652],"mapped",[22790]],[[194653,194653],"mapped",[22810]],[[194654,194654],"mapped",[22818]],[[194655,194655],"mapped",[22882]],[[194656,194656],"mapped",[136872]],[[194657,194657],"mapped",[136938]],[[194658,194658],"mapped",[23020]],[[194659,194659],"mapped",[23067]],[[194660,194660],"mapped",[23079]],[[194661,194661],"mapped",[23000]],[[194662,194662],"mapped",[23142]],[[194663,194663],"mapped",[14062]],[[194664,194664],"disallowed"],[[194665,194665],"mapped",[23304]],[[194666,194667],"mapped",[23358]],[[194668,194668],"mapped",[137672]],[[194669,194669],"mapped",[23491]],[[194670,194670],"mapped",[23512]],[[194671,194671],"mapped",[23527]],[[194672,194672],"mapped",[23539]],[[194673,194673],"mapped",[138008]],[[194674,194674],"mapped",[23551]],[[194675,194675],"mapped",[23558]],[[194676,194676],"disallowed"],[[194677,194677],"mapped",[23586]],[[194678,194678],"mapped",[14209]],[[194679,194679],"mapped",[23648]],[[194680,194680],"mapped",[23662]],[[194681,194681],"mapped",[23744]],[[194682,194682],"mapped",[23693]],[[194683,194683],"mapped",[138724]],[[194684,194684],"mapped",[23875]],[[194685,194685],"mapped",[138726]],[[194686,194686],"mapped",[23918]],[[194687,194687],"mapped",[23915]],[[194688,194688],"mapped",[23932]],[[194689,194689],"mapped",[24033]],[[194690,194690],"mapped",[24034]],[[194691,194691],"mapped",[14383]],[[194692,194692],"mapped",[24061]],[[194693,194693],"mapped",[24104]],[[194694,194694],"mapped",[24125]],[[194695,194695],"mapped",[24169]],[[194696,194696],"mapped",[14434]],[[194697,194697],"mapped",[139651]],[[194698,194698],"mapped",[14460]],[[194699,194699],"mapped",[24240]],[[194700,194700],"mapped",[24243]],[[194701,194701],"mapped",[24246]],[[194702,194702],"mapped",[24266]],[[194703,194703],"mapped",[172946]],[[194704,194704],"mapped",[24318]],[[194705,194706],"mapped",[140081]],[[194707,194707],"mapped",[33281]],[[194708,194709],"mapped",[24354]],[[194710,194710],"mapped",[14535]],[[194711,194711],"mapped",[144056]],[[194712,194712],"mapped",[156122]],[[194713,194713],"mapped",[24418]],[[194714,194714],"mapped",[24427]],[[194715,194715],"mapped",[14563]],[[194716,194716],"mapped",[24474]],[[194717,194717],"mapped",[24525]],[[194718,194718],"mapped",[24535]],[[194719,194719],"mapped",[24569]],[[194720,194720],"mapped",[24705]],[[194721,194721],"mapped",[14650]],[[194722,194722],"mapped",[14620]],[[194723,194723],"mapped",[24724]],[[194724,194724],"mapped",[141012]],[[194725,194725],"mapped",[24775]],[[194726,194726],"mapped",[24904]],[[194727,194727],"mapped",[24908]],[[194728,194728],"mapped",[24910]],[[194729,194729],"mapped",[24908]],[[194730,194730],"mapped",[24954]],[[194731,194731],"mapped",[24974]],[[194732,194732],"mapped",[25010]],[[194733,194733],"mapped",[24996]],[[194734,194734],"mapped",[25007]],[[194735,194735],"mapped",[25054]],[[194736,194736],"mapped",[25074]],[[194737,194737],"mapped",[25078]],[[194738,194738],"mapped",[25104]],[[194739,194739],"mapped",[25115]],[[194740,194740],"mapped",[25181]],[[194741,194741],"mapped",[25265]],[[194742,194742],"mapped",[25300]],[[194743,194743],"mapped",[25424]],[[194744,194744],"mapped",[142092]],[[194745,194745],"mapped",[25405]],[[194746,194746],"mapped",[25340]],[[194747,194747],"mapped",[25448]],[[194748,194748],"mapped",[25475]],[[194749,194749],"mapped",[25572]],[[194750,194750],"mapped",[142321]],[[194751,194751],"mapped",[25634]],[[194752,194752],"mapped",[25541]],[[194753,194753],"mapped",[25513]],[[194754,194754],"mapped",[14894]],[[194755,194755],"mapped",[25705]],[[194756,194756],"mapped",[25726]],[[194757,194757],"mapped",[25757]],[[194758,194758],"mapped",[25719]],[[194759,194759],"mapped",[14956]],[[194760,194760],"mapped",[25935]],[[194761,194761],"mapped",[25964]],[[194762,194762],"mapped",[143370]],[[194763,194763],"mapped",[26083]],[[194764,194764],"mapped",[26360]],[[194765,194765],"mapped",[26185]],[[194766,194766],"mapped",[15129]],[[194767,194767],"mapped",[26257]],[[194768,194768],"mapped",[15112]],[[194769,194769],"mapped",[15076]],[[194770,194770],"mapped",[20882]],[[194771,194771],"mapped",[20885]],[[194772,194772],"mapped",[26368]],[[194773,194773],"mapped",[26268]],[[194774,194774],"mapped",[32941]],[[194775,194775],"mapped",[17369]],[[194776,194776],"mapped",[26391]],[[194777,194777],"mapped",[26395]],[[194778,194778],"mapped",[26401]],[[194779,194779],"mapped",[26462]],[[194780,194780],"mapped",[26451]],[[194781,194781],"mapped",[144323]],[[194782,194782],"mapped",[15177]],[[194783,194783],"mapped",[26618]],[[194784,194784],"mapped",[26501]],[[194785,194785],"mapped",[26706]],[[194786,194786],"mapped",[26757]],[[194787,194787],"mapped",[144493]],[[194788,194788],"mapped",[26766]],[[194789,194789],"mapped",[26655]],[[194790,194790],"mapped",[26900]],[[194791,194791],"mapped",[15261]],[[194792,194792],"mapped",[26946]],[[194793,194793],"mapped",[27043]],[[194794,194794],"mapped",[27114]],[[194795,194795],"mapped",[27304]],[[194796,194796],"mapped",[145059]],[[194797,194797],"mapped",[27355]],[[194798,194798],"mapped",[15384]],[[194799,194799],"mapped",[27425]],[[194800,194800],"mapped",[145575]],[[194801,194801],"mapped",[27476]],[[194802,194802],"mapped",[15438]],[[194803,194803],"mapped",[27506]],[[194804,194804],"mapped",[27551]],[[194805,194805],"mapped",[27578]],[[194806,194806],"mapped",[27579]],[[194807,194807],"mapped",[146061]],[[194808,194808],"mapped",[138507]],[[194809,194809],"mapped",[146170]],[[194810,194810],"mapped",[27726]],[[194811,194811],"mapped",[146620]],[[194812,194812],"mapped",[27839]],[[194813,194813],"mapped",[27853]],[[194814,194814],"mapped",[27751]],[[194815,194815],"mapped",[27926]],[[194816,194816],"mapped",[27966]],[[194817,194817],"mapped",[28023]],[[194818,194818],"mapped",[27969]],[[194819,194819],"mapped",[28009]],[[194820,194820],"mapped",[28024]],[[194821,194821],"mapped",[28037]],[[194822,194822],"mapped",[146718]],[[194823,194823],"mapped",[27956]],[[194824,194824],"mapped",[28207]],[[194825,194825],"mapped",[28270]],[[194826,194826],"mapped",[15667]],[[194827,194827],"mapped",[28363]],[[194828,194828],"mapped",[28359]],[[194829,194829],"mapped",[147153]],[[194830,194830],"mapped",[28153]],[[194831,194831],"mapped",[28526]],[[194832,194832],"mapped",[147294]],[[194833,194833],"mapped",[147342]],[[194834,194834],"mapped",[28614]],[[194835,194835],"mapped",[28729]],[[194836,194836],"mapped",[28702]],[[194837,194837],"mapped",[28699]],[[194838,194838],"mapped",[15766]],[[194839,194839],"mapped",[28746]],[[194840,194840],"mapped",[28797]],[[194841,194841],"mapped",[28791]],[[194842,194842],"mapped",[28845]],[[194843,194843],"mapped",[132389]],[[194844,194844],"mapped",[28997]],[[194845,194845],"mapped",[148067]],[[194846,194846],"mapped",[29084]],[[194847,194847],"disallowed"],[[194848,194848],"mapped",[29224]],[[194849,194849],"mapped",[29237]],[[194850,194850],"mapped",[29264]],[[194851,194851],"mapped",[149000]],[[194852,194852],"mapped",[29312]],[[194853,194853],"mapped",[29333]],[[194854,194854],"mapped",[149301]],[[194855,194855],"mapped",[149524]],[[194856,194856],"mapped",[29562]],[[194857,194857],"mapped",[29579]],[[194858,194858],"mapped",[16044]],[[194859,194859],"mapped",[29605]],[[194860,194861],"mapped",[16056]],[[194862,194862],"mapped",[29767]],[[194863,194863],"mapped",[29788]],[[194864,194864],"mapped",[29809]],[[194865,194865],"mapped",[29829]],[[194866,194866],"mapped",[29898]],[[194867,194867],"mapped",[16155]],[[194868,194868],"mapped",[29988]],[[194869,194869],"mapped",[150582]],[[194870,194870],"mapped",[30014]],[[194871,194871],"mapped",[150674]],[[194872,194872],"mapped",[30064]],[[194873,194873],"mapped",[139679]],[[194874,194874],"mapped",[30224]],[[194875,194875],"mapped",[151457]],[[194876,194876],"mapped",[151480]],[[194877,194877],"mapped",[151620]],[[194878,194878],"mapped",[16380]],[[194879,194879],"mapped",[16392]],[[194880,194880],"mapped",[30452]],[[194881,194881],"mapped",[151795]],[[194882,194882],"mapped",[151794]],[[194883,194883],"mapped",[151833]],[[194884,194884],"mapped",[151859]],[[194885,194885],"mapped",[30494]],[[194886,194887],"mapped",[30495]],[[194888,194888],"mapped",[30538]],[[194889,194889],"mapped",[16441]],[[194890,194890],"mapped",[30603]],[[194891,194891],"mapped",[16454]],[[194892,194892],"mapped",[16534]],[[194893,194893],"mapped",[152605]],[[194894,194894],"mapped",[30798]],[[194895,194895],"mapped",[30860]],[[194896,194896],"mapped",[30924]],[[194897,194897],"mapped",[16611]],[[194898,194898],"mapped",[153126]],[[194899,194899],"mapped",[31062]],[[194900,194900],"mapped",[153242]],[[194901,194901],"mapped",[153285]],[[194902,194902],"mapped",[31119]],[[194903,194903],"mapped",[31211]],[[194904,194904],"mapped",[16687]],[[194905,194905],"mapped",[31296]],[[194906,194906],"mapped",[31306]],[[194907,194907],"mapped",[31311]],[[194908,194908],"mapped",[153980]],[[194909,194910],"mapped",[154279]],[[194911,194911],"disallowed"],[[194912,194912],"mapped",[16898]],[[194913,194913],"mapped",[154539]],[[194914,194914],"mapped",[31686]],[[194915,194915],"mapped",[31689]],[[194916,194916],"mapped",[16935]],[[194917,194917],"mapped",[154752]],[[194918,194918],"mapped",[31954]],[[194919,194919],"mapped",[17056]],[[194920,194920],"mapped",[31976]],[[194921,194921],"mapped",[31971]],[[194922,194922],"mapped",[32000]],[[194923,194923],"mapped",[155526]],[[194924,194924],"mapped",[32099]],[[194925,194925],"mapped",[17153]],[[194926,194926],"mapped",[32199]],[[194927,194927],"mapped",[32258]],[[194928,194928],"mapped",[32325]],[[194929,194929],"mapped",[17204]],[[194930,194930],"mapped",[156200]],[[194931,194931],"mapped",[156231]],[[194932,194932],"mapped",[17241]],[[194933,194933],"mapped",[156377]],[[194934,194934],"mapped",[32634]],[[194935,194935],"mapped",[156478]],[[194936,194936],"mapped",[32661]],[[194937,194937],"mapped",[32762]],[[194938,194938],"mapped",[32773]],[[194939,194939],"mapped",[156890]],[[194940,194940],"mapped",[156963]],[[194941,194941],"mapped",[32864]],[[194942,194942],"mapped",[157096]],[[194943,194943],"mapped",[32880]],[[194944,194944],"mapped",[144223]],[[194945,194945],"mapped",[17365]],[[194946,194946],"mapped",[32946]],[[194947,194947],"mapped",[33027]],[[194948,194948],"mapped",[17419]],[[194949,194949],"mapped",[33086]],[[194950,194950],"mapped",[23221]],[[194951,194951],"mapped",[157607]],[[194952,194952],"mapped",[157621]],[[194953,194953],"mapped",[144275]],[[194954,194954],"mapped",[144284]],[[194955,194955],"mapped",[33281]],[[194956,194956],"mapped",[33284]],[[194957,194957],"mapped",[36766]],[[194958,194958],"mapped",[17515]],[[194959,194959],"mapped",[33425]],[[194960,194960],"mapped",[33419]],[[194961,194961],"mapped",[33437]],[[194962,194962],"mapped",[21171]],[[194963,194963],"mapped",[33457]],[[194964,194964],"mapped",[33459]],[[194965,194965],"mapped",[33469]],[[194966,194966],"mapped",[33510]],[[194967,194967],"mapped",[158524]],[[194968,194968],"mapped",[33509]],[[194969,194969],"mapped",[33565]],[[194970,194970],"mapped",[33635]],[[194971,194971],"mapped",[33709]],[[194972,194972],"mapped",[33571]],[[194973,194973],"mapped",[33725]],[[194974,194974],"mapped",[33767]],[[194975,194975],"mapped",[33879]],[[194976,194976],"mapped",[33619]],[[194977,194977],"mapped",[33738]],[[194978,194978],"mapped",[33740]],[[194979,194979],"mapped",[33756]],[[194980,194980],"mapped",[158774]],[[194981,194981],"mapped",[159083]],[[194982,194982],"mapped",[158933]],[[194983,194983],"mapped",[17707]],[[194984,194984],"mapped",[34033]],[[194985,194985],"mapped",[34035]],[[194986,194986],"mapped",[34070]],[[194987,194987],"mapped",[160714]],[[194988,194988],"mapped",[34148]],[[194989,194989],"mapped",[159532]],[[194990,194990],"mapped",[17757]],[[194991,194991],"mapped",[17761]],[[194992,194992],"mapped",[159665]],[[194993,194993],"mapped",[159954]],[[194994,194994],"mapped",[17771]],[[194995,194995],"mapped",[34384]],[[194996,194996],"mapped",[34396]],[[194997,194997],"mapped",[34407]],[[194998,194998],"mapped",[34409]],[[194999,194999],"mapped",[34473]],[[195000,195000],"mapped",[34440]],[[195001,195001],"mapped",[34574]],[[195002,195002],"mapped",[34530]],[[195003,195003],"mapped",[34681]],[[195004,195004],"mapped",[34600]],[[195005,195005],"mapped",[34667]],[[195006,195006],"mapped",[34694]],[[195007,195007],"disallowed"],[[195008,195008],"mapped",[34785]],[[195009,195009],"mapped",[34817]],[[195010,195010],"mapped",[17913]],[[195011,195011],"mapped",[34912]],[[195012,195012],"mapped",[34915]],[[195013,195013],"mapped",[161383]],[[195014,195014],"mapped",[35031]],[[195015,195015],"mapped",[35038]],[[195016,195016],"mapped",[17973]],[[195017,195017],"mapped",[35066]],[[195018,195018],"mapped",[13499]],[[195019,195019],"mapped",[161966]],[[195020,195020],"mapped",[162150]],[[195021,195021],"mapped",[18110]],[[195022,195022],"mapped",[18119]],[[195023,195023],"mapped",[35488]],[[195024,195024],"mapped",[35565]],[[195025,195025],"mapped",[35722]],[[195026,195026],"mapped",[35925]],[[195027,195027],"mapped",[162984]],[[195028,195028],"mapped",[36011]],[[195029,195029],"mapped",[36033]],[[195030,195030],"mapped",[36123]],[[195031,195031],"mapped",[36215]],[[195032,195032],"mapped",[163631]],[[195033,195033],"mapped",[133124]],[[195034,195034],"mapped",[36299]],[[195035,195035],"mapped",[36284]],[[195036,195036],"mapped",[36336]],[[195037,195037],"mapped",[133342]],[[195038,195038],"mapped",[36564]],[[195039,195039],"mapped",[36664]],[[195040,195040],"mapped",[165330]],[[195041,195041],"mapped",[165357]],[[195042,195042],"mapped",[37012]],[[195043,195043],"mapped",[37105]],[[195044,195044],"mapped",[37137]],[[195045,195045],"mapped",[165678]],[[195046,195046],"mapped",[37147]],[[195047,195047],"mapped",[37432]],[[195048,195048],"mapped",[37591]],[[195049,195049],"mapped",[37592]],[[195050,195050],"mapped",[37500]],[[195051,195051],"mapped",[37881]],[[195052,195052],"mapped",[37909]],[[195053,195053],"mapped",[166906]],[[195054,195054],"mapped",[38283]],[[195055,195055],"mapped",[18837]],[[195056,195056],"mapped",[38327]],[[195057,195057],"mapped",[167287]],[[195058,195058],"mapped",[18918]],[[195059,195059],"mapped",[38595]],[[195060,195060],"mapped",[23986]],[[195061,195061],"mapped",[38691]],[[195062,195062],"mapped",[168261]],[[195063,195063],"mapped",[168474]],[[195064,195064],"mapped",[19054]],[[195065,195065],"mapped",[19062]],[[195066,195066],"mapped",[38880]],[[195067,195067],"mapped",[168970]],[[195068,195068],"mapped",[19122]],[[195069,195069],"mapped",[169110]],[[195070,195071],"mapped",[38923]],[[195072,195072],"mapped",[38953]],[[195073,195073],"mapped",[169398]],[[195074,195074],"mapped",[39138]],[[195075,195075],"mapped",[19251]],[[195076,195076],"mapped",[39209]],[[195077,195077],"mapped",[39335]],[[195078,195078],"mapped",[39362]],[[195079,195079],"mapped",[39422]],[[195080,195080],"mapped",[19406]],[[195081,195081],"mapped",[170800]],[[195082,195082],"mapped",[39698]],[[195083,195083],"mapped",[40000]],[[195084,195084],"mapped",[40189]],[[195085,195085],"mapped",[19662]],[[195086,195086],"mapped",[19693]],[[195087,195087],"mapped",[40295]],[[195088,195088],"mapped",[172238]],[[195089,195089],"mapped",[19704]],[[195090,195090],"mapped",[172293]],[[195091,195091],"mapped",[172558]],[[195092,195092],"mapped",[172689]],[[195093,195093],"mapped",[40635]],[[195094,195094],"mapped",[19798]],[[195095,195095],"mapped",[40697]],[[195096,195096],"mapped",[40702]],[[195097,195097],"mapped",[40709]],[[195098,195098],"mapped",[40719]],[[195099,195099],"mapped",[40726]],[[195100,195100],"mapped",[40763]],[[195101,195101],"mapped",[173568]],[[195102,196605],"disallowed"],[[196606,196607],"disallowed"],[[196608,262141],"disallowed"],[[262142,262143],"disallowed"],[[262144,327677],"disallowed"],[[327678,327679],"disallowed"],[[327680,393213],"disallowed"],[[393214,393215],"disallowed"],[[393216,458749],"disallowed"],[[458750,458751],"disallowed"],[[458752,524285],"disallowed"],[[524286,524287],"disallowed"],[[524288,589821],"disallowed"],[[589822,589823],"disallowed"],[[589824,655357],"disallowed"],[[655358,655359],"disallowed"],[[655360,720893],"disallowed"],[[720894,720895],"disallowed"],[[720896,786429],"disallowed"],[[786430,786431],"disallowed"],[[786432,851965],"disallowed"],[[851966,851967],"disallowed"],[[851968,917501],"disallowed"],[[917502,917503],"disallowed"],[[917504,917504],"disallowed"],[[917505,917505],"disallowed"],[[917506,917535],"disallowed"],[[917536,917631],"disallowed"],[[917632,917759],"disallowed"],[[917760,917999],"ignored"],[[918000,983037],"disallowed"],[[983038,983039],"disallowed"],[[983040,1048573],"disallowed"],[[1048574,1048575],"disallowed"],[[1048576,1114109],"disallowed"],[[1114110,1114111],"disallowed"]]'); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nccwpck_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __nccwpck_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/"; +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +const core = __nccwpck_require__(75714); +const github = __nccwpck_require__(183); +const axios = __nccwpck_require__(73565); +const detect = __nccwpck_require__(46397); +const httpsProxyAgent = __nccwpck_require__(81908); + +function configWithProxy(config) { + var c = config || {}; + if (process.env.OPENAI_PROXY) { + core.debug(`use proxy: ${process.env.OPENAI_PROXY}`); + c.proxy = false; + c.httpsAgent = new httpsProxyAgent(process.env.OPENAI_PROXY); + return c; + } + return c; +} + +async function run() { + try { + // Get input values + const programmingLanguage = core.getInput('PROGRAMMING_LANGUAGE'); + const openaiToken = core.getInput('OPENAI_TOKEN'); + const fullReviewComment = core.getInput('FULL_REVIEW_COMMENT'); + const reviewCommentPrefix = core.getInput('REVIEW_COMMENT_PREFIX'); + const githubToken = core.getInput('GITHUB_TOKEN'); + const githubBaseURL = core.getInput('GITHUB_BASE_URL') || process.env.GITHUB_API_URL; + const promptTemplate = core.getInput('PROMPT_TEMPLATE'); + const maxCodeLength = core.getInput('MAX_CODE_LENGTH'); + const answerTemplate = core.getInput('ANSWER_TEMPLATE'); + + core.debug(`programmingLanguage: ${programmingLanguage}`); + core.debug(`openaiToken length: ${openaiToken.length}`); + core.debug(`fullReviewComment: ${fullReviewComment}`); + core.debug(`reviewCommentPrefix: ${reviewCommentPrefix}`); + core.debug(`githubToken length: ${githubToken.length}`); + core.debug(`githubBaseURL: ${githubBaseURL}`); + core.debug(`promptTemplate: ${promptTemplate}`); + core.debug(`maxCodeLength: ${maxCodeLength}`); + core.debug(`answerTemplate: ${answerTemplate}`); + + // Get information about the pull request review + const comment = github.context.payload.comment; + const repoName = github.context.payload.repository.name; + const repoOwner = github.context.payload.repository.owner.login; + const prNumber = github.context.payload.number || github.context.payload.issue.number; // get number from a pull request event or comment event + + // Get the code to analyze from the review comment + var content = comment && comment.body || ""; + + const url = `${githubBaseURL}/repos/${repoOwner}/${repoName}/pulls/${prNumber}`; + core.debug(`diff url: ${url}`); + var response = await axios.get(url, { + headers: { + Authorization: `Bearer ${githubToken}`, + Accept: 'application/vnd.github.diff' + } + }); + const code = response.data; + core.debug(`diff code: ${code}`); + const files = parsePullRequestDiff(code); + core.debug(`diff files: ${files}`); + + if (!content || content == fullReviewComment) { + // Extract the code from the pull request content + content = promptTemplate.replace('${code}', code); + } else { + content = content.substring(reviewCommentPrefix.length); + content = content.replace('${code}', code); + const fileNames = findFileNames(content); + core.debug(`found files name in commment: ${fileNames}`); + for (const fileName of fileNames) { + for (const key of Object.keys(files)) { + if (key.includes(fileName)) { + core.debug(`replace \${file:${fileName}} with ${key}'s diff`); + content = content.replace(`\${file:${fileName}}`, files[key]); + break; + } + } + } + } + content = content.substring(0, maxCodeLength); + + // Determine the programming language if it was not provided + if (programmingLanguage == 'auto') { + const detectedLanguage = detect(code); + core.debug(`Detected programming language: ${detectedLanguage}`); + programmingLanguage = detectedLanguage; + } + + var messages = [{ + role: "system", + content: `You are a master of programming language ${programmingLanguage}` + }, { + role: "user", + content: content + }]; + + core.debug(`content: ${content}`); + + // Call the OpenAI ChatGPT API to analyze the code + response = await axios.post('https://api.openai.com/v1/chat/completions', { + "model": "gpt-3.5-turbo", + "messages": messages + }, configWithProxy({ + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${openaiToken}` + } + })); + + const answer = response.data.choices[0].message.content; + core.debug(`openai response: ${answer}`); + + // Reply to the review comment with the OpenAI response + const octokit = github.getOctokit(githubToken, { + baseUrl: githubBaseURL + }); + await octokit.rest.issues.createComment({ + owner: repoOwner, + repo: repoName, + issue_number: prNumber, + body: answerTemplate.replace('${answer}', answer) + // in_reply_to: comment.id + }); + } catch (error) { + core.setFailed(error.message); + } +} + +function parsePullRequestDiff(diffContent) { + const files = {}; + const diffLines = diffContent.split('\n'); + + let currentFile = null; + let currentLines = []; + + for (const line of diffLines) { + if (line.startsWith('diff --git')) { + // Start of a new file + if (currentFile) { + files[currentFile] = currentLines.join('\n'); + } + currentFile = line.substring('diff --git'.length + 1); + currentLines = [line]; + } else { + // Add the line to the current file's diff + currentLines.push(line); + } + } + + // Add the last file's diff + if (currentFile) { + files[currentFile] = currentLines.join('\n'); + } + + return files; +} + +function findFileNames(str) { + const pattern = /\${file:([^{}]+)}/g; + const matches = str.matchAll(pattern); + const names = []; + for (const match of matches) { + names.push(match[1]); + } + return names; +} + +run(); + +})(); + +module.exports = __webpack_exports__; +/******/ })() +; \ No newline at end of file diff --git a/dist/licenses.txt b/dist/licenses.txt new file mode 100644 index 0000000..88645d6 --- /dev/null +++ b/dist/licenses.txt @@ -0,0 +1,1035 @@ +@actions/core +MIT +The MIT License (MIT) + +Copyright 2019 GitHub + +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. + +@actions/github +MIT +The MIT License (MIT) + +Copyright 2019 GitHub + +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. + +@actions/http-client +MIT +Actions Http Client for Node.js + +Copyright (c) GitHub, Inc. + +All rights reserved. + +MIT 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. + + +@octokit/auth-token +MIT +The MIT License + +Copyright (c) 2019 Octokit 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. + + +@octokit/core +MIT +The MIT License + +Copyright (c) 2019 Octokit 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. + + +@octokit/endpoint +MIT +The MIT License + +Copyright (c) 2018 Octokit 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. + + +@octokit/graphql +MIT +The MIT License + +Copyright (c) 2018 Octokit 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. + + +@octokit/plugin-paginate-rest +MIT +MIT License Copyright (c) 2019 Octokit 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 (including the next paragraph) 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. + + +@octokit/plugin-rest-endpoint-methods +MIT +MIT License Copyright (c) 2019 Octokit 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 (including the next paragraph) 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. + + +@octokit/request +MIT +The MIT License + +Copyright (c) 2018 Octokit 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. + + +@octokit/request-error +MIT +The MIT License + +Copyright (c) 2019 Octokit 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. + + +@redis/bloom +MIT + +@redis/client +MIT + +@redis/graph +MIT + +@redis/json +MIT + +@redis/search +MIT + +@redis/time-series +MIT + +@vercel/ncc +MIT +Copyright 2018 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. + +agent-base +MIT + +asynckit +MIT +The MIT License (MIT) + +Copyright (c) 2016 Alex Indigo + +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. + + +axios +MIT +# Copyright (c) 2014-present Matt Zabriskie & Collaborators + +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. + + +before-after-hook +Apache-2.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 2018 Gregor Martynus and other 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. + + +classifier + +cluster-key-slot +Apache-2.0 +Copyright (c) 2018 Mike Diarmid (Salakar) + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this library 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. + + +combined-stream +MIT +Copyright (c) 2011 Debuggable Limited + +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. + + +debug +MIT +(The MIT License) + +Copyright (c) 2014-2017 TJ Holowaychuk +Copyright (c) 2018-2021 Josh Junon + +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. + + + +delayed-stream +MIT +Copyright (c) 2011 Debuggable Limited + +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. + + +deprecation +ISC +The ISC License + +Copyright (c) Gregor Martynus and contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. + + +follow-redirects +MIT +Copyright 2014–present Olivier Lalonde , James Talmage , Ruben Verborgh + +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. + + +form-data +MIT +Copyright (c) 2012 Felix Geisendörfer (felix@debuggable.com) and 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. + + +generic-pool +MIT + +https-proxy-agent +MIT + +is-plain-object +MIT +The MIT License (MIT) + +Copyright (c) 2014-2017, Jon Schlinkert. + +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. + + +language-classifier + +language-detect +MIT +The MIT License (MIT) + +Copyright (c) 2014 Blake Embrey (hello@blakeembrey.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. + + +mime-db +MIT +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015-2022 Douglas Christopher Wilson + +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. + + +mime-types +MIT +(The MIT License) + +Copyright (c) 2014 Jonathan Ong +Copyright (c) 2015 Douglas Christopher Wilson + +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. + + +ms +MIT +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. + + +node-fetch +MIT +The MIT License (MIT) + +Copyright (c) 2016 David Frank + +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. + + + +once +ISC +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. + + +proxy-from-env +MIT +The MIT License + +Copyright (C) 2016-2018 Rob Wu + +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. + + +redis +MIT +MIT License + +Copyright (c) 2016-present Node Redis 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. + + +tr46 +MIT + +tunnel +MIT +The MIT License (MIT) + +Copyright (c) 2012 Koichi Kobayashi + +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. + + +underscore +MIT +Copyright (c) 2009-2022 Jeremy Ashkenas, Julian Gonggrijp, and DocumentCloud and Investigative Reporters & Editors + +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. + + +universal-user-agent +ISC +# [ISC License](https://spdx.org/licenses/ISC) + +Copyright (c) 2018, Gregor Martynus (https://github.com/gr2m) + +Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. + +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. + + +uuid +MIT +The MIT License (MIT) + +Copyright (c) 2010-2020 Robert Kieffer 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. + + +webidl-conversions +BSD-2-Clause +# The BSD 2-Clause License + +Copyright (c) 2014, Domenic Denicola +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. + +2. 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 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. + + +whatwg-url +MIT +The MIT License (MIT) + +Copyright (c) 2015–2016 Sebastian Mayr + +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. + + +wrappy +ISC +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. + + +yallist +ISC +The ISC License + +Copyright (c) Isaac Z. Schlueter and Contributors + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +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. diff --git a/index.js b/index.js new file mode 100644 index 0000000..1c24418 --- /dev/null +++ b/index.js @@ -0,0 +1,169 @@ +const core = require('@actions/core'); +const github = require('@actions/github'); +const axios = require('axios'); +const detect = require('language-detect'); +const httpsProxyAgent = require('https-proxy-agent'); + +function configWithProxy(config) { + var c = config || {}; + if (process.env.OPENAI_PROXY) { + core.debug(`use proxy: ${process.env.OPENAI_PROXY}`); + c.proxy = false; + c.httpsAgent = new httpsProxyAgent(process.env.OPENAI_PROXY); + return c; + } + return c; +} + +async function run() { + try { + // Get input values + const programmingLanguage = core.getInput('PROGRAMMING_LANGUAGE'); + const openaiToken = core.getInput('OPENAI_TOKEN'); + const fullReviewComment = core.getInput('FULL_REVIEW_COMMENT'); + const reviewCommentPrefix = core.getInput('REVIEW_COMMENT_PREFIX'); + const githubToken = core.getInput('GITHUB_TOKEN'); + const githubBaseURL = core.getInput('GITHUB_BASE_URL') || process.env.GITHUB_API_URL; + const promptTemplate = core.getInput('PROMPT_TEMPLATE'); + const maxCodeLength = core.getInput('MAX_CODE_LENGTH'); + const answerTemplate = core.getInput('ANSWER_TEMPLATE'); + + core.debug(`programmingLanguage: ${programmingLanguage}`); + core.debug(`openaiToken length: ${openaiToken.length}`); + core.debug(`fullReviewComment: ${fullReviewComment}`); + core.debug(`reviewCommentPrefix: ${reviewCommentPrefix}`); + core.debug(`githubToken length: ${githubToken.length}`); + core.debug(`githubBaseURL: ${githubBaseURL}`); + core.debug(`promptTemplate: ${promptTemplate}`); + core.debug(`maxCodeLength: ${maxCodeLength}`); + core.debug(`answerTemplate: ${answerTemplate}`); + + // Get information about the pull request review + const comment = github.context.payload.comment; + const repoName = github.context.payload.repository.name; + const repoOwner = github.context.payload.repository.owner.login; + const prNumber = github.context.payload.number || github.context.payload.issue.number; // get number from a pull request event or comment event + + // Get the code to analyze from the review comment + var content = comment && comment.body || ""; + + const url = `${githubBaseURL}/${repoOwner}/${repoName}/pulls/${prNumber}`; + core.debug(`diff url: ${url}`); + var response = await axios.get(url, { + headers: { + Authorization: `Bearer ${githubToken}`, + Accept: 'application/vnd.github.diff' + } + }); + const code = response.data; + core.debug(`diff code: ${code}`); + const files = parsePullRequestDiff(code); + core.debug(`diff files: ${files}`); + + if (!content || content == fullReviewComment) { + // Extract the code from the pull request content + content = promptTemplate.replace('${code}', code); + } else { + content = content.substring(reviewCommentPrefix.length); + content = content.replace('${code}', code); + const fileNames = findFileNames(content); + core.debug(`found files name in commment: ${fileNames}`); + for (const fileName of fileNames) { + for (const key of Object.keys(files)) { + if (key.includes(fileName)) { + core.debug(`replace \${file:${fileName}} with ${key}'s diff`); + content = content.replace(`\${file:${fileName}}`, files[key]); + break; + } + } + } + } + content = content.substring(0, maxCodeLength); + + // Determine the programming language if it was not provided + if (programmingLanguage == 'auto') { + const detectedLanguage = detect(code); + core.debug(`Detected programming language: ${detectedLanguage}`); + programmingLanguage = detectedLanguage; + } + + var messages = [{ + role: "system", + content: `You are a master of programming language ${programmingLanguage}` + }, { + role: "user", + content: content + }]; + + core.debug(`content: ${content}`); + + // Call the OpenAI ChatGPT API to analyze the code + response = await axios.post('https://api.openai.com/v1/chat/completions', { + "model": "gpt-3.5-turbo", + "messages": messages + }, configWithProxy({ + headers: { + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${openaiToken}` + } + })); + + const answer = response.data.choices[0].message.content; + core.debug(`openai response: ${answer}`); + + // Reply to the review comment with the OpenAI response + const octokit = github.getOctokit(githubToken, { + baseUrl: githubBaseURL + }); + await octokit.rest.issues.createComment({ + owner: repoOwner, + repo: repoName, + issue_number: prNumber, + body: answerTemplate.replace('${answer}', answer) + // in_reply_to: comment.id + }); + } catch (error) { + core.setFailed(error.message); + } +} + +function parsePullRequestDiff(diffContent) { + const files = {}; + const diffLines = diffContent.split('\n'); + + let currentFile = null; + let currentLines = []; + + for (const line of diffLines) { + if (line.startsWith('diff --git')) { + // Start of a new file + if (currentFile) { + files[currentFile] = currentLines.join('\n'); + } + currentFile = line.substring('diff --git'.length + 1); + currentLines = [line]; + } else { + // Add the line to the current file's diff + currentLines.push(line); + } + } + + // Add the last file's diff + if (currentFile) { + files[currentFile] = currentLines.join('\n'); + } + + return files; +} + +function findFileNames(str) { + const pattern = /\${file:([^{}]+)}/g; + const matches = str.matchAll(pattern); + const names = []; + for (const match of matches) { + names.push(match[1]); + } + return names; +} + +run(); diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..1cc3a5c --- /dev/null +++ b/package-lock.json @@ -0,0 +1,875 @@ +{ + "name": "gitea-code-review-action", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "gitea-code-review-action", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@actions/core": "^1.10.0", + "@actions/github": "^5.1.1", + "axios": "^1.3.4", + "https-proxy-agent": "^5.0.1", + "language-detect": "1.1.0" + } + }, + "node_modules/@actions/core": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/@actions/core/-/core-1.10.0.tgz", + "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", + "dependencies": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "node_modules/@actions/github": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/@actions/github/-/github-5.1.1.tgz", + "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", + "dependencies": { + "@actions/http-client": "^2.0.1", + "@octokit/core": "^3.6.0", + "@octokit/plugin-paginate-rest": "^2.17.0", + "@octokit/plugin-rest-endpoint-methods": "^5.13.0" + } + }, + "node_modules/@actions/http-client": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/@actions/http-client/-/http-client-2.0.1.tgz", + "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", + "dependencies": { + "tunnel": "^0.0.6" + } + }, + "node_modules/@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "dependencies": { + "@octokit/types": "^6.0.3" + } + }, + "node_modules/@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "dependencies": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmmirror.com/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "dependencies": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "dependencies": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmmirror.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "node_modules/@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmmirror.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "dependencies": { + "@octokit/types": "^6.40.0" + }, + "peerDependencies": { + "@octokit/core": ">=2" + } + }, + "node_modules/@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmmirror.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "dependencies": { + "@octokit/types": "^6.39.0", + "deprecation": "^2.3.1" + }, + "peerDependencies": { + "@octokit/core": ">=3" + } + }, + "node_modules/@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmmirror.com/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "dependencies": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "node_modules/@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "dependencies": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "node_modules/@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmmirror.com/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "dependencies": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "node_modules/@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/client": { + "version": "1.5.6", + "resolved": "https://registry.npmmirror.com/@redis/client/-/client-1.5.6.tgz", + "integrity": "sha512-dFD1S6je+A47Lj22jN/upVU2fj4huR7S9APd7/ziUXsIXDL+11GPYti4Suv5y8FuXaN+0ZG4JF+y1houEJ7ToA==", + "dependencies": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@redis/graph": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@redis/graph/-/graph-1.1.0.tgz", + "integrity": "sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/json": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@redis/json/-/json-1.0.4.tgz", + "integrity": "sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/search": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@redis/search/-/search-1.1.2.tgz", + "integrity": "sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/@redis/time-series": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@redis/time-series/-/time-series-1.0.4.tgz", + "integrity": "sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==", + "peerDependencies": { + "@redis/client": "^1.0.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "node_modules/classifier": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/classifier/-/classifier-0.1.0.tgz", + "integrity": "sha512-lHoacZqTxberxbsaT/bDkvUicTl6nVTqnM5X6PhCTCg6Y3uhd/lWqbtMvHwe0W0vGkPWCVw5NTUTi3SOlccaSA==", + "deprecated": "Package no longer supported. Contact support@npmjs.com for more info.", + "dependencies": { + "redis": ">=0.7.0", + "underscore": ">=1.1.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==", + "engines": { + "node": ">= 4" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/language-classifier": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/language-classifier/-/language-classifier-0.0.1.tgz", + "integrity": "sha512-myU10NLx/dfATa7b0NJiycU4jlU15fMLcnfXYEO6NPMhH1vHYKMp9eoRZaQMDTu3bz25bD31Q9klsf26oOW1BQ==", + "dependencies": { + "classifier": "~0.1.0" + } + }, + "node_modules/language-detect": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/language-detect/-/language-detect-1.1.0.tgz", + "integrity": "sha512-2kXHOATTovlwlh1LJE21DLyGiuvX6bK8CYw9kEyui2FeNBV3EYD2OE9h1ChuWNGXe/TGcm7PqpK/32S614R1Kg==", + "dependencies": { + "language-classifier": "0.0.1" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/redis": { + "version": "4.6.5", + "resolved": "https://registry.npmmirror.com/redis/-/redis-4.6.5.tgz", + "integrity": "sha512-O0OWA36gDQbswOdUuAhRL6mTZpHFN525HlgZgDaVNgCJIAZR3ya06NTESb0R+TUZ+BFaDpz6NnnVvoMx9meUFg==", + "workspaces": [ + "./packages/*" + ], + "dependencies": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.5.6", + "@redis/graph": "1.1.0", + "@redis/json": "1.0.4", + "@redis/search": "1.1.2", + "@redis/time-series": "1.0.4" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "node_modules/universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + }, + "dependencies": { + "@actions/core": { + "version": "1.10.0", + "resolved": "https://registry.npmmirror.com/@actions/core/-/core-1.10.0.tgz", + "integrity": "sha512-2aZDDa3zrrZbP5ZYg159sNoLRb61nQ7awl5pSvIq5Qpj81vwDzdMRKzkWJGJuwVvWpvZKx7vspJALyvaaIQyug==", + "requires": { + "@actions/http-client": "^2.0.1", + "uuid": "^8.3.2" + } + }, + "@actions/github": { + "version": "5.1.1", + "resolved": "https://registry.npmmirror.com/@actions/github/-/github-5.1.1.tgz", + "integrity": "sha512-Nk59rMDoJaV+mHCOJPXuvB1zIbomlKS0dmSIqPGxd0enAXBnOfn4VWF+CGtRCwXZG9Epa54tZA7VIRlJDS8A6g==", + "requires": { + "@actions/http-client": "^2.0.1", + "@octokit/core": "^3.6.0", + "@octokit/plugin-paginate-rest": "^2.17.0", + "@octokit/plugin-rest-endpoint-methods": "^5.13.0" + } + }, + "@actions/http-client": { + "version": "2.0.1", + "resolved": "https://registry.npmmirror.com/@actions/http-client/-/http-client-2.0.1.tgz", + "integrity": "sha512-PIXiMVtz6VvyaRsGY268qvj57hXQEpsYogYOu2nrQhlf+XCGmZstmuZBbAybUl1nQGnvS1k1eEsQ69ZoD7xlSw==", + "requires": { + "tunnel": "^0.0.6" + } + }, + "@octokit/auth-token": { + "version": "2.5.0", + "resolved": "https://registry.npmmirror.com/@octokit/auth-token/-/auth-token-2.5.0.tgz", + "integrity": "sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g==", + "requires": { + "@octokit/types": "^6.0.3" + } + }, + "@octokit/core": { + "version": "3.6.0", + "resolved": "https://registry.npmmirror.com/@octokit/core/-/core-3.6.0.tgz", + "integrity": "sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q==", + "requires": { + "@octokit/auth-token": "^2.4.4", + "@octokit/graphql": "^4.5.8", + "@octokit/request": "^5.6.3", + "@octokit/request-error": "^2.0.5", + "@octokit/types": "^6.0.3", + "before-after-hook": "^2.2.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/endpoint": { + "version": "6.0.12", + "resolved": "https://registry.npmmirror.com/@octokit/endpoint/-/endpoint-6.0.12.tgz", + "integrity": "sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA==", + "requires": { + "@octokit/types": "^6.0.3", + "is-plain-object": "^5.0.0", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/graphql": { + "version": "4.8.0", + "resolved": "https://registry.npmmirror.com/@octokit/graphql/-/graphql-4.8.0.tgz", + "integrity": "sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==", + "requires": { + "@octokit/request": "^5.6.0", + "@octokit/types": "^6.0.3", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/openapi-types": { + "version": "12.11.0", + "resolved": "https://registry.npmmirror.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz", + "integrity": "sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ==" + }, + "@octokit/plugin-paginate-rest": { + "version": "2.21.3", + "resolved": "https://registry.npmmirror.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz", + "integrity": "sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw==", + "requires": { + "@octokit/types": "^6.40.0" + } + }, + "@octokit/plugin-rest-endpoint-methods": { + "version": "5.16.2", + "resolved": "https://registry.npmmirror.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz", + "integrity": "sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw==", + "requires": { + "@octokit/types": "^6.39.0", + "deprecation": "^2.3.1" + } + }, + "@octokit/request": { + "version": "5.6.3", + "resolved": "https://registry.npmmirror.com/@octokit/request/-/request-5.6.3.tgz", + "integrity": "sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A==", + "requires": { + "@octokit/endpoint": "^6.0.1", + "@octokit/request-error": "^2.1.0", + "@octokit/types": "^6.16.1", + "is-plain-object": "^5.0.0", + "node-fetch": "^2.6.7", + "universal-user-agent": "^6.0.0" + } + }, + "@octokit/request-error": { + "version": "2.1.0", + "resolved": "https://registry.npmmirror.com/@octokit/request-error/-/request-error-2.1.0.tgz", + "integrity": "sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg==", + "requires": { + "@octokit/types": "^6.0.3", + "deprecation": "^2.0.0", + "once": "^1.4.0" + } + }, + "@octokit/types": { + "version": "6.41.0", + "resolved": "https://registry.npmmirror.com/@octokit/types/-/types-6.41.0.tgz", + "integrity": "sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg==", + "requires": { + "@octokit/openapi-types": "^12.11.0" + } + }, + "@redis/bloom": { + "version": "1.2.0", + "resolved": "https://registry.npmmirror.com/@redis/bloom/-/bloom-1.2.0.tgz", + "integrity": "sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==", + "requires": {} + }, + "@redis/client": { + "version": "1.5.6", + "resolved": "https://registry.npmmirror.com/@redis/client/-/client-1.5.6.tgz", + "integrity": "sha512-dFD1S6je+A47Lj22jN/upVU2fj4huR7S9APd7/ziUXsIXDL+11GPYti4Suv5y8FuXaN+0ZG4JF+y1houEJ7ToA==", + "requires": { + "cluster-key-slot": "1.1.2", + "generic-pool": "3.9.0", + "yallist": "4.0.0" + } + }, + "@redis/graph": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/@redis/graph/-/graph-1.1.0.tgz", + "integrity": "sha512-16yZWngxyXPd+MJxeSr0dqh2AIOi8j9yXKcKCwVaKDbH3HTuETpDVPcLujhFYVPtYrngSco31BUcSa9TH31Gqg==", + "requires": {} + }, + "@redis/json": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@redis/json/-/json-1.0.4.tgz", + "integrity": "sha512-LUZE2Gdrhg0Rx7AN+cZkb1e6HjoSKaeeW8rYnt89Tly13GBI5eP4CwDVr+MY8BAYfCg4/N15OUrtLoona9uSgw==", + "requires": {} + }, + "@redis/search": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/@redis/search/-/search-1.1.2.tgz", + "integrity": "sha512-/cMfstG/fOh/SsE+4/BQGeuH/JJloeWuH+qJzM8dbxuWvdWibWAOAHHCZTMPhV3xIlH4/cUEIA8OV5QnYpaVoA==", + "requires": {} + }, + "@redis/time-series": { + "version": "1.0.4", + "resolved": "https://registry.npmmirror.com/@redis/time-series/-/time-series-1.0.4.tgz", + "integrity": "sha512-ThUIgo2U/g7cCuZavucQTQzA9g9JbDDY2f64u3AbAoz/8vE2lt2U37LamDUVChhaDA3IRT9R6VvJwqnUfTJzng==", + "requires": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmmirror.com/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.3.4", + "resolved": "https://registry.npmmirror.com/axios/-/axios-1.3.4.tgz", + "integrity": "sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "before-after-hook": { + "version": "2.2.3", + "resolved": "https://registry.npmmirror.com/before-after-hook/-/before-after-hook-2.2.3.tgz", + "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==" + }, + "classifier": { + "version": "0.1.0", + "resolved": "https://registry.npmmirror.com/classifier/-/classifier-0.1.0.tgz", + "integrity": "sha512-lHoacZqTxberxbsaT/bDkvUicTl6nVTqnM5X6PhCTCg6Y3uhd/lWqbtMvHwe0W0vGkPWCVw5NTUTi3SOlccaSA==", + "requires": { + "redis": ">=0.7.0", + "underscore": ">=1.1.0" + } + }, + "cluster-key-slot": { + "version": "1.1.2", + "resolved": "https://registry.npmmirror.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz", + "integrity": "sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmmirror.com/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "deprecation": { + "version": "2.3.1", + "resolved": "https://registry.npmmirror.com/deprecation/-/deprecation-2.3.1.tgz", + "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "generic-pool": { + "version": "3.9.0", + "resolved": "https://registry.npmmirror.com/generic-pool/-/generic-pool-3.9.0.tgz", + "integrity": "sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==" + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmmirror.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "language-classifier": { + "version": "0.0.1", + "resolved": "https://registry.npmmirror.com/language-classifier/-/language-classifier-0.0.1.tgz", + "integrity": "sha512-myU10NLx/dfATa7b0NJiycU4jlU15fMLcnfXYEO6NPMhH1vHYKMp9eoRZaQMDTu3bz25bD31Q9klsf26oOW1BQ==", + "requires": { + "classifier": "~0.1.0" + } + }, + "language-detect": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/language-detect/-/language-detect-1.1.0.tgz", + "integrity": "sha512-2kXHOATTovlwlh1LJE21DLyGiuvX6bK8CYw9kEyui2FeNBV3EYD2OE9h1ChuWNGXe/TGcm7PqpK/32S614R1Kg==", + "requires": { + "language-classifier": "0.0.1" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmmirror.com/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmmirror.com/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmmirror.com/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "redis": { + "version": "4.6.5", + "resolved": "https://registry.npmmirror.com/redis/-/redis-4.6.5.tgz", + "integrity": "sha512-O0OWA36gDQbswOdUuAhRL6mTZpHFN525HlgZgDaVNgCJIAZR3ya06NTESb0R+TUZ+BFaDpz6NnnVvoMx9meUFg==", + "requires": { + "@redis/bloom": "1.2.0", + "@redis/client": "1.5.6", + "@redis/graph": "1.1.0", + "@redis/json": "1.0.4", + "@redis/search": "1.1.2", + "@redis/time-series": "1.0.4" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmmirror.com/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmmirror.com/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "underscore": { + "version": "1.13.6", + "resolved": "https://registry.npmmirror.com/underscore/-/underscore-1.13.6.tgz", + "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A==" + }, + "universal-user-agent": { + "version": "6.0.0", + "resolved": "https://registry.npmmirror.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz", + "integrity": "sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmmirror.com/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmmirror.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmmirror.com/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmmirror.com/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmmirror.com/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..f4556d5 --- /dev/null +++ b/package.json @@ -0,0 +1,26 @@ +{ + "name": "gitea-code-review-action", + "version": "0.0.1", + "description": "A Gitea Action that uses OPENAI to review code", + "main": "index.js", + "keywords": [ + "gitea", + "action", + "openai", + "code", + "review" + ], + "dependencies": { + "@actions/core": "^1.10.0", + "@actions/github": "^5.1.1", + "axios": "^1.3.4", + "https-proxy-agent": "^5.0.1", + "language-detect": "1.1.0" + }, + "repository": { + "type": "git", + "url": "https://github.com/ingress-it-solutions/gitea-code-review-action.git" + }, + "author": "Ingress IT Solutions", + "license": "MIT" +}