NeahNew/.next/server/vendor-chunks/fast-redact.js
2025-05-03 14:17:46 +02:00

175 lines
121 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
* It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
* If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
* or disable the default devtool with "devtool: false".
* If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
*/
exports.id = "vendor-chunks/fast-redact";
exports.ids = ["vendor-chunks/fast-redact"];
exports.modules = {
/***/ "(action-browser)/./node_modules/fast-redact/index.js":
/*!*******************************************!*\
!*** ./node_modules/fast-redact/index.js ***!
\*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst validator = __webpack_require__(/*! ./lib/validator */ \"(action-browser)/./node_modules/fast-redact/lib/validator.js\")\nconst parse = __webpack_require__(/*! ./lib/parse */ \"(action-browser)/./node_modules/fast-redact/lib/parse.js\")\nconst redactor = __webpack_require__(/*! ./lib/redactor */ \"(action-browser)/./node_modules/fast-redact/lib/redactor.js\")\nconst restorer = __webpack_require__(/*! ./lib/restorer */ \"(action-browser)/./node_modules/fast-redact/lib/restorer.js\")\nconst { groupRedact, nestedRedact } = __webpack_require__(/*! ./lib/modifiers */ \"(action-browser)/./node_modules/fast-redact/lib/modifiers.js\")\nconst state = __webpack_require__(/*! ./lib/state */ \"(action-browser)/./node_modules/fast-redact/lib/state.js\")\nconst rx = __webpack_require__(/*! ./lib/rx */ \"(action-browser)/./node_modules/fast-redact/lib/rx.js\")\nconst validate = validator()\nconst noop = (o) => o\nnoop.restore = noop\n\nconst DEFAULT_CENSOR = '[REDACTED]'\nfastRedact.rx = rx\nfastRedact.validator = validator\n\nmodule.exports = fastRedact\n\nfunction fastRedact (opts = {}) {\n const paths = Array.from(new Set(opts.paths || []))\n const serialize = 'serialize' in opts ? (\n opts.serialize === false ? opts.serialize\n : (typeof opts.serialize === 'function' ? opts.serialize : JSON.stringify)\n ) : JSON.stringify\n const remove = opts.remove\n if (remove === true && serialize !== JSON.stringify) {\n throw Error('fast-redact remove option may only be set when serializer is JSON.stringify')\n }\n const censor = remove === true\n ? undefined\n : 'censor' in opts ? opts.censor : DEFAULT_CENSOR\n\n const isCensorFct = typeof censor === 'function'\n const censorFctTakesPath = isCensorFct && censor.length > 1\n\n if (paths.length === 0) return serialize || noop\n\n validate({ paths, serialize, censor })\n\n const { wildcards, wcLen, secret } = parse({ paths, censor })\n\n const compileRestore = restorer()\n const strict = 'strict' in opts ? opts.strict : true\n\n return redactor({ secret, wcLen, serialize, strict, isCensorFct, censorFctTakesPath }, state({\n secret,\n censor,\n compileRestore,\n serialize,\n groupRedact,\n nestedRedact,\n wildcards,\n wcLen\n }))\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBWTs7QUFFWixrQkFBa0IsbUJBQU8sQ0FBQyxxRkFBaUI7QUFDM0MsY0FBYyxtQkFBTyxDQUFDLDZFQUFhO0FBQ25DLGlCQUFpQixtQkFBTyxDQUFDLG1GQUFnQjtBQUN6QyxpQkFBaUIsbUJBQU8sQ0FBQyxtRkFBZ0I7QUFDekMsUUFBUSw0QkFBNEIsRUFBRSxtQkFBTyxDQUFDLHFGQUFpQjtBQUMvRCxjQUFjLG1CQUFPLENBQUMsNkVBQWE7QUFDbkMsV0FBVyxtQkFBTyxDQUFDLHVFQUFVO0FBQzdCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUEsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBLGFBQWEsMEJBQTBCOztBQUV2QyxVQUFVLDJCQUEyQixVQUFVLGVBQWU7O0FBRTlEO0FBQ0E7O0FBRUEsb0JBQW9CLG1FQUFtRTtBQUN2RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuY29uc3QgdmFsaWRhdG9yID0gcmVxdWlyZSgnLi9saWIvdmFsaWRhdG9yJylcbmNvbnN0IHBhcnNlID0gcmVxdWlyZSgnLi9saWIvcGFyc2UnKVxuY29uc3QgcmVkYWN0b3IgPSByZXF1aXJlKCcuL2xpYi9yZWRhY3RvcicpXG5jb25zdCByZXN0b3JlciA9IHJlcXVpcmUoJy4vbGliL3Jlc3RvcmVyJylcbmNvbnN0IHsgZ3JvdXBSZWRhY3QsIG5lc3RlZFJlZGFjdCB9ID0gcmVxdWlyZSgnLi9saWIvbW9kaWZpZXJzJylcbmNvbnN0IHN0YXRlID0gcmVxdWlyZSgnLi9saWIvc3RhdGUnKVxuY29uc3QgcnggPSByZXF1aXJlKCcuL2xpYi9yeCcpXG5jb25zdCB2YWxpZGF0ZSA9IHZhbGlkYXRvcigpXG5jb25zdCBub29wID0gKG8pID0+IG9cbm5vb3AucmVzdG9yZSA9IG5vb3BcblxuY29uc3QgREVGQVVMVF9DRU5TT1IgPSAnW1JFREFDVEVEXSdcbmZhc3RSZWRhY3QucnggPSByeFxuZmFzdFJlZGFjdC52YWxpZGF0b3IgPSB2YWxpZGF0b3JcblxubW9kdWxlLmV4cG9ydHMgPSBmYXN0UmVkYWN0XG5cbmZ1bmN0aW9uIGZhc3RSZWRhY3QgKG9wdHMgPSB7fSkge1xuICBjb25zdCBwYXRocyA9IEFycmF5LmZyb20obmV3IFNldChvcHRzLnBhdGhzIHx8IFtdKSlcbiAgY29uc3Qgc2VyaWFsaXplID0gJ3NlcmlhbGl6ZScgaW4gb3B0cyA/IChcbiAgICBvcHRzLnNlcmlhbGl6ZSA9PT0gZmFsc2UgPyBvcHRzLnNlcmlhbGl6ZVxuICAgICAgOiAodHlwZW9mIG9wdHMuc2VyaWFsaXplID09PSAnZnVuY3Rpb24nID8gb3B0cy5zZXJpYWxpemUgOiBKU09OLnN0cmluZ2lmeSlcbiAgKSA6IEpTT04uc3RyaW5naWZ5XG4gIGNvbnN0IHJlbW92ZSA9IG9wdHMucmVtb3ZlXG4gIGlmIChyZW1vdmUgPT09IHRydWUgJiYgc2VyaWFsaXplICE9PSBKU09OLnN0cmluZ2lmeSkge1xuICAgIHRocm93IEVycm9yKCdmYXN0LXJlZGFjdCDigJMgcmVtb3ZlIG9wdGlvbiBtYXkgb25seSBiZSBzZXQgd2hlbiBzZXJpYWxpemVyIGlzIEpTT04uc3RyaW5naWZ5JylcbiAgfVxuICBjb25zdCBjZW5zb3IgPSByZW1vdmUgPT09IHRydWVcbiAgICA/IHVuZGVmaW5lZFxuICAgIDogJ2NlbnNvcicgaW4gb3B0cyA/IG9wdHMuY2Vuc29yIDogREVGQVVMVF9DRU5TT1JcblxuICBjb25zdCBpc0NlbnNvckZjdCA9IHR5cGVvZiBjZW5zb3IgPT09ICdmdW5jdGlvbidcbiAgY29uc3QgY2Vuc29yRmN0VGFrZXNQYXRoID0gaXNDZW5zb3JGY3QgJiYgY2Vuc29yLmxlbmd0aCA+IDFcblxuICBpZiAocGF0aHMubGVuZ3RoID09PSAwKSByZXR1cm4gc2VyaWFsaXplIHx8IG5vb3BcblxuICB2YWxpZGF0ZSh7IHBhdGhzLCBzZXJpYWxpemUsIGNlbnNvciB9KVxuXG4gIGNvbnN0IHsgd2lsZGNhcmRzLCB3Y0xlbiwgc2VjcmV0IH0gPSBwYXJzZSh7IHBhdGhzLCBjZW5zb3IgfSlcblxuICBjb25zdCBjb21waWxlUmVzdG9yZSA9IHJlc3RvcmVyKClcbiAgY29uc3Qgc3RyaWN0ID0gJ3N0cmljdCcgaW4gb3B0cyA/IG9wdHMuc3RyaWN0IDogdHJ1ZVxuXG4gIHJldHVybiByZWRhY3Rvcih7IHNlY3JldCwgd2NMZW4sIHNlcmlhbGl6ZSwgc3RyaWN0LCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoIH0sIHN0YXRlKHtcbiAgICBzZWNyZXQsXG4gICAgY2Vuc29yLFxuICAgIGNvbXBpbGVSZXN0b3JlLFxuICAgIHNlcmlhbGl6ZSxcbiAgICBncm91cFJlZGFjdCxcbiAgICBuZXN0ZWRSZWRhY3QsXG4gICAgd2lsZGNhcmRzLFxuICAgIHdjTGVuXG4gIH0pKVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/index.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/modifiers.js":
/*!***************************************************!*\
!*** ./node_modules/fast-redact/lib/modifiers.js ***!
\***************************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = {\n groupRedact,\n groupRestore,\n nestedRedact,\n nestedRestore\n}\n\nfunction groupRestore ({ keys, values, target }) {\n if (target == null || typeof target === 'string') return\n const length = keys.length\n for (var i = 0; i < length; i++) {\n const k = keys[i]\n target[k] = values[i]\n }\n}\n\nfunction groupRedact (o, path, censor, isCensorFct, censorFctTakesPath) {\n const target = get(o, path)\n if (target == null || typeof target === 'string') return { keys: null, values: null, target, flat: true }\n const keys = Object.keys(target)\n const keysLength = keys.length\n const pathLength = path.length\n const pathWithKey = censorFctTakesPath ? [...path] : undefined\n const values = new Array(keysLength)\n\n for (var i = 0; i < keysLength; i++) {\n const key = keys[i]\n values[i] = target[key]\n\n if (censorFctTakesPath) {\n pathWithKey[pathLength] = key\n target[key] = censor(target[key], pathWithKey)\n } else if (isCensorFct) {\n target[key] = censor(target[key])\n } else {\n target[key] = censor\n }\n }\n return { keys, values, target, flat: true }\n}\n\n/**\n * @param {RestoreInstruction[]} instructions a set of instructions for restoring values to objects\n */\nfunction nestedRestore (instructions) {\n for (let i = 0; i < instructions.length; i++) {\n const { target, path, value } = instructions[i]\n let current = target\n for (let i = path.length - 1; i > 0; i--) {\n current = current[path[i]]\n }\n current[path[0]] = value\n }\n}\n\nfunction nestedRedact (store, o, path, ns, censor, isCensorFct, censorFctTakesPath) {\n const target = get(o, path)\n if (target == null) return\n const keys = Object.keys(target)\n const keysLength = keys.length\n for (var i = 0; i < keysLength; i++) {\n const key = keys[i]\n specialSet(store, target, key, path, ns, censor, isCensorFct, censorFctTakesPath)\n }\n return store\n}\n\nfunction has (obj, prop) {\n return obj !== undefined && obj !== null\n ? ('hasOwn' in Object ? Object.hasOwn(obj, prop) : Object.prototype.hasOwnProperty.call(obj, prop))\n : false\n}\n\nfunction specialSet (store, o, k, path, afterPath, censor, isCensorFct, censorFctTakesPath) {\n const afterPathLen = afterPath.length\n const lastPathIndex = afterPathLen - 1\n const originalKey = k\n var i = -1\n var n\n var nv\n var ov\n var oov = null\n var wc = null\n var kIsWc\n var wcov\n var consecutive = false\n var level = 0\n // need to track depth of the `redactPath` tree\n var depth = 0\n var redactPathCurrent = tree()\n ov = n = o[k]\n if (typeof n !== 'object') return\n while (n != null && ++i < afterPathLen) {\n depth += 1\n k = afterPath[i]\n oov = ov\n if (k !== '*' && !wc && !(typeof n === 'object' && k in n)) {\n break\n }\n if (k === '*') {\n if (wc === '*') {\n consecutive = true\n }\n wc = k\n if (i !== lastPathIndex) {\n continue\n }\n }\n if (wc) {\n const wcKeys = Object.keys(n)\n for (var j = 0; j < wcKeys.length; j++) {\n const wck = wcKeys[j]\n wcov = n[wck]\n kIsWc = k === '*'\n if (consecutive) {\n redactPathCurrent = node(redactPathCurrent, wck, depth)\n level = i\n ov = iterateNthLevel(wcov, level - 1, k, path, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, o[originalKey], depth + 1)\n } else {\n if (kIsWc || (typeof wcov === 'object' && wcov !== null && k in wcov)) {\n if (kIsWc) {\n ov = wcov\n } else {\n ov = wcov[k]\n }\n nv = (i !== lastPathIndex)\n ? ov\n : (isCensorFct\n ? (censorFctTakesPath ? censor(ov, [...path, originalKey, ...afterPath]) : censor(ov))\n : censor)\n if (kIsWc) {\n const rv = restoreInstr(node(redactPathCurrent, wck, depth), ov, o[originalKey])\n store.push(rv)\n n[wck] = nv\n } else {\n if (wcov[k] === nv) {\n // pass\n } else if ((nv === undefined && censor !== undefined) || (has(wcov, k) && nv === ov)) {\n redactPathCurrent = node(redactPathCurrent, wck, depth)\n } else {\n redactPathCurrent = node(redactPathCurrent, wck, depth)\n const rv = restoreInstr(node(redactPathCurrent, k, depth + 1), ov, o[originalKey])\n store.push(rv)\n wcov[k] = nv\n }\n }\n }\n }\n }\n wc = null\n } else {\n ov = n[k]\n redactPathCurrent = node(redactPathCurrent, k, depth)\n nv = (i !== lastPathIndex)\n ? ov\n : (isCensorFct\n ? (censorFctTakesPath ? censor(ov, [...path, originalKey, ...afterPath]) : censor(ov))\n : censor)\n if ((has(n, k) && nv === ov) || (nv === undefined && censor !== undefined)) {\n // pass\n } else {\n const rv = restoreInstr(redactPathCurrent, ov, o[originalKey])\n store.push(rv)\n n[k] = nv\n }\n n = n[k]\n }\n if (typeof n !== 'object') break\n // prevent circular structure, see https://github.com/pinojs/pino/issues/1513\n if (ov === oov || typeof ov === 'undefined') {\n // pass\n }\n }\n}\n\nfunction get (o, p) {\n var i = -1\n var l = p.length\n var n = o\n while (n != null && ++i < l) {\n n = n[p[i]]\n }\n return n\n}\n\nfunction iterateNthLevel (wcov, level, k, path, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, parent, depth) {\n if (level === 0) {\n if (kIsWc || (typeof wcov === 'object' && wcov !== null && k in wcov)) {\n if (kIsWc) {\n ov = wcov\n } else {\n ov = wcov[k]\n }\n nv = (i !== lastPathIndex)\n ? ov\n : (isCensorFct\n ? (censorFctTakesPath ? censor(ov, [...path, originalKey, ...afterPath]) : censor(ov))\n : censor)\n if (kIsWc) {\n const rv = restoreInstr(redactPathCurrent, ov, parent)\n store.push(rv)\n n[wck] = nv\n } else {\n if (wcov[k] === nv) {\n // pass\n } else if ((nv === undefined && censor !== undefined) || (has(wcov, k) && nv === ov)) {\n // pass\n } else {\n const rv = restoreInstr(node(redactPathCurrent, k, depth + 1), ov, parent)\n store.push(rv)\n wcov[k] = nv\n }\n }\n }\n }\n for (const key in wcov) {\n if (typeof wcov[key] === 'object') {\n redactPathCurrent = node(redactPathCurrent, key, depth)\n iterateNthLevel(wcov[key], level - 1, k, path, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, parent, depth + 1)\n }\n }\n}\n\n/**\n * @typedef {object} TreeNode\n * @prop {TreeNode} [parent] reference to the parent of this node in the tree, or `null` if there is no parent\n * @prop {string} key the key that this node represents (key here being part of the path being redacted\n * @prop {TreeNode[]} children the child nodes of this node\n * @prop {number} depth the depth of this node in the tree\n */\n\n/**\n * instantiate a new, empty tree\n * @returns {TreeNode}\n */\nfunction tree () {\n return { parent: null, key: null, children: [], depth: 0 }\n}\n\n/**\n * creates a new node in the tree, attaching it as a child of the provided parent node\n * if the specified depth matches the parent depth, adds the new node as a _sibling_ of the parent instead\n * @param {TreeNode} parent the parent node to add a new node to (if the parent depth matches the provided `depth` value, will instead add as a sibling of this\n * @param {string} key the key that the new node represents (key here being part of the path being redacted)\n * @param {number} depth the depth of the new node in the tree - used to determing whether to add the new node as a child or sibling of the provided `parent` node\n * @returns {TreeNode} a reference to the newly created node in the tree\n */\nfunction node (parent, key, depth) {\n if (parent.depth === depth) {\n return node(parent.parent, key, depth)\n }\n\n var child = {\n parent,\n key,\n depth,\n children: []\n }\n\n parent.children.push(child)\n\n return child\n}\n\n/**\n * @typedef {object} RestoreInstruction\n * @prop {string[]} path a reverse-order path that can be used to find the correct insertion point to restore a `value` for the given `parent` object\n * @prop {*} value the value to restore\n * @prop {object} target the object to restore the `value` in\n */\n\n/**\n * create a restore instruction for the given redactPath node\n * generates a path in reverse order by walking up the redactPath tree\n * @param {TreeNode} node a tree node that should be at the bottom of the redact path (i.e. have no children) - this will be used to walk up the redact path tree to construct the path needed to restore\n * @param {*} value the value to restore\n * @param {object} target a reference to the parent object to apply the restore instruction to\n * @returns {RestoreInstruction} an instruction used to restore a nested value for a specific object\n */\nfunction restoreInstr (node, value, target) {\n let current = node\n const path = []\n do {\n path.push(current.key)\n current = current.parent\n } while (current.parent != null)\n\n return { path, value, target }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvbW9kaWZpZXJzLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSx5QkFBeUIsc0JBQXNCO0FBQy9DO0FBQ0E7QUFDQSxrQkFBa0IsWUFBWTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsNkRBQTZEO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsa0JBQWtCLGdCQUFnQjtBQUNsQztBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7O0FBRUE7QUFDQSxXQUFXLHNCQUFzQjtBQUNqQztBQUNBO0FBQ0Esa0JBQWtCLHlCQUF5QjtBQUMzQyxZQUFZLHNCQUFzQjtBQUNsQztBQUNBLGtDQUFrQyxPQUFPO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQixnQkFBZ0I7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCLG1CQUFtQjtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixVQUFVLFVBQVU7QUFDcEIsVUFBVSxRQUFRO0FBQ2xCLFVBQVUsWUFBWTtBQUN0QixVQUFVLFFBQVE7QUFDbEI7O0FBRUE7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0EsV0FBVztBQUNYOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVksVUFBVTtBQUN0QixZQUFZLFFBQVE7QUFDcEIsWUFBWSxRQUFRO0FBQ3BCLGNBQWMsVUFBVTtBQUN4QjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCLFVBQVUsVUFBVTtBQUNwQixVQUFVLEdBQUc7QUFDYixVQUFVLFFBQVE7QUFDbEI7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsV0FBVyxVQUFVO0FBQ3JCLFdBQVcsR0FBRztBQUNkLFdBQVcsUUFBUTtBQUNuQixhQUFhLG9CQUFvQjtBQUNqQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7O0FBRUosV0FBVztBQUNYIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvbW9kaWZpZXJzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IHtcbiAgZ3JvdXBSZWRhY3QsXG4gIGdyb3VwUmVzdG9yZSxcbiAgbmVzdGVkUmVkYWN0LFxuICBuZXN0ZWRSZXN0b3JlXG59XG5cbmZ1bmN0aW9uIGdyb3VwUmVzdG9yZSAoeyBrZXlzLCB2YWx1ZXMsIHRhcmdldCB9KSB7XG4gIGlmICh0YXJnZXQgPT0gbnVsbCB8fCB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykgcmV0dXJuXG4gIGNvbnN0IGxlbmd0aCA9IGtleXMubGVuZ3RoXG4gIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBrID0ga2V5c1tpXVxuICAgIHRhcmdldFtrXSA9IHZhbHVlc1tpXVxuICB9XG59XG5cbmZ1bmN0aW9uIGdyb3VwUmVkYWN0IChvLCBwYXRoLCBjZW5zb3IsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgpIHtcbiAgY29uc3QgdGFyZ2V0ID0gZ2V0KG8sIHBhdGgpXG4gIGlmICh0YXJnZXQgPT0gbnVsbCB8fCB0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykgcmV0dXJuIHsga2V5czogbnVsbCwgdmFsdWVzOiBudWxsLCB0YXJnZXQsIGZsYXQ6IHRydWUgfVxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGFyZ2V0KVxuICBjb25zdCBrZXlzTGVuZ3RoID0ga2V5cy5sZW5ndGhcbiAgY29uc3QgcGF0aExlbmd0aCA9IHBhdGgubGVuZ3RoXG4gIGNvbnN0IHBhdGhXaXRoS2V5ID0gY2Vuc29yRmN0VGFrZXNQYXRoID8gWy4uLnBhdGhdIDogdW5kZWZpbmVkXG4gIGNvbnN0IHZhbHVlcyA9IG5ldyBBcnJheShrZXlzTGVuZ3RoKVxuXG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5c0xlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5c1tpXVxuICAgIHZhbHVlc1tpXSA9IHRhcmdldFtrZXldXG5cbiAgICBpZiAoY2Vuc29yRmN0VGFrZXNQYXRoKSB7XG4gICAgICBwYXRoV2l0aEtleVtwYXRoTGVuZ3RoXSA9IGtleVxuICAgICAgdGFyZ2V0W2tleV0gPSBjZW5zb3IodGFyZ2V0W2tleV0sIHBhdGhXaXRoS2V5KVxuICAgIH0gZWxzZSBpZiAoaXNDZW5zb3JGY3QpIHtcbiAgICAgIHRhcmdldFtrZXldID0gY2Vuc29yKHRhcmdldFtrZXldKVxuICAgIH0gZWxzZSB7XG4gICAgICB0YXJnZXRba2V5XSA9IGNlbnNvclxuICAgIH1cbiAgfVxuICByZXR1cm4geyBrZXlzLCB2YWx1ZXMsIHRhcmdldCwgZmxhdDogdHJ1ZSB9XG59XG5cbi8qKlxuICogQHBhcmFtIHtSZXN0b3JlSW5zdHJ1Y3Rpb25bXX0gaW5zdHJ1Y3Rpb25zIGEgc2V0IG9mIGluc3RydWN0aW9ucyBmb3IgcmVzdG9yaW5nIHZhbHVlcyB0byBvYmplY3RzXG4gKi9cbmZ1bmN0aW9uIG5lc3RlZFJlc3RvcmUgKGluc3RydWN0aW9ucykge1xuICBmb3IgKGxldCBpID0gMDsgaSA8IGluc3RydWN0aW9ucy5sZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IHsgdGFyZ2V0LCBwYXRoLCB2YWx1ZSB9ID0gaW5zdHJ1Y3Rpb25zW2ldXG4gICAgbGV0IGN1cnJlbnQgPSB0YXJnZXRcbiAgICBmb3IgKGxldCBpID0gcGF0aC5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG4gICAgICBjdXJyZW50ID0gY3VycmVudFtwYXRoW2ldXVxuICAgIH1cbiAgICBjdXJyZW50W3BhdGhbMF1dID0gdmFsdWVcbiAgfVxufVxuXG5mdW5jdGlvbiBuZXN0ZWRSZWRhY3QgKHN0b3JlLCBvLCBwYXRoLCBucywgY2Vuc29yLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoKSB7XG4gIGNvbnN0IHRhcmdldCA9IGdldChvLCBwYXRoKVxuICBpZiAodGFyZ2V0ID09IG51bGwpIHJldHVyblxuICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXModGFyZ2V0KVxuICBjb25zdCBrZXlzTGVuZ3RoID0ga2V5cy5sZW5ndGhcbiAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzTGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCBrZXkgPSBrZXlzW2ldXG4gICAgc3BlY2lhbFNldChzdG9yZSwgdGFyZ2V0LCBrZXksIHBhdGgsIG5zLCBjZW5zb3IsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgpXG4gIH1cbiAgcmV0dXJuIHN0b3JlXG59XG5cbmZ1bmN0aW9uIGhhcyAob2JqLCBwcm9wKSB7XG4gIHJldHVybiBvYmogIT09IHVuZGVmaW5lZCAmJiBvYmogIT09IG51bGxcbiAgICA/ICgnaGFzT3duJyBpbiBPYmplY3QgPyBPYmplY3QuaGFzT3duKG9iaiwgcHJvcCkgOiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSlcbiAgICA6IGZhbHNlXG59XG5cbmZ1bmN0aW9uIHNwZWNpYWxTZXQgKHN0b3JlLCBvLCBrLCBwYXRoLCBhZnRlclBhdGgsIGNlbnNvciwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCkge1xuICBjb25zdCBhZnRlclBhdGhMZW4gPSBhZnRlclBhdGgubGVuZ3RoXG4gIGNvbnN0IGxhc3RQYXRoSW5kZXggPSBhZnRlclBhdGhMZW4gLSAxXG4gIGNvbnN0IG9yaWdpbmFsS2V5ID0ga1xuICB2YXIgaSA9IC0xXG4gIHZhciBuXG4gIHZhciBudlxuICB2YXIgb3ZcbiAgdmFyIG9vdiA9IG51bGxcbiAgdmFyIHdjID0gbnVsbFxuICB2YXIga0lzV2NcbiAgdmFyIHdjb3ZcbiAgdmFyIGNvbnNlY3V0aXZlID0gZmFsc2VcbiAgdmFyIGxldmVsID0gMFxuICAvLyBuZWVkIHRvIHRyYWNrIGRlcHRoIG9mIHRoZSBgcmVkYWN0UGF0aGAgdHJlZVxuICB2YXIgZGVwdGggPSAwXG4gIHZhciByZWRhY3RQYXRoQ3VycmVudCA9IHRyZWUoKVxuICBvdiA9IG4gPSBvW2tdXG4gIGlmICh0eXBlb2YgbiAhPT0gJ29iamVjdCcpIHJldHVyblxuICB3aGlsZSAobiAhPSBudWxsICYmICsraSA8IGFmdGVyUGF0aExlbikge1xuICAgIGRlcHRoICs9IDFcbiAgICBrID0gYWZ0ZXJQYXRoW2ldXG4gICAgb292ID0gb3ZcbiAgICBpZiAoayAhPT0gJyonICYmICF3YyAmJiAhKHR5cGVvZiBuID09PSAnb2JqZWN0JyAmJiBrIGluIG4pKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgICBpZiAoayA9PT0gJyonKSB7XG4gICAgICBpZiAod2MgPT09ICcqJykge1xuICAgICAgICBjb25zZWN1dGl2ZSA9IHRydWVcbiAgICAgIH1cbiAgICAgIHdjID0ga1xuICAgICAgaWYgKGkgIT09IGxhc3RQYXRoSW5kZXgpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdjKSB7XG4gICAgICBjb25zdCB3Y0tleXMgPSBPYmplY3Qua2V5cyhuKVxuICAgICAgZm9yICh2YXIgaiA9IDA7IGogPCB3Y0tleXMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgY29uc3Qgd2NrID0gd2NLZXlzW2pdXG4gICAgICAgIHdjb3YgPSBuW3dja11cbiAgICAgICAga0lzV2MgPSBrID09PSAnKidcbiAgICAgICAgaWYgKGNvbnNlY3V0aXZlKSB7XG4gICAgICAgICAgcmVkYWN0UGF0aEN1cnJlbnQgPSBub2RlKHJlZGFjdFBhdGhDdXJyZW50LCB3Y2ssIGRlcHRoKVxuICAgICAgICAgIGxldmVsID0gaVxuICAgICAgICAgIG92ID0gaXRlcmF0ZU50aExldmVsKHdjb3YsIGxldmVsIC0gMSwgaywgcGF0aCwgYWZ0ZXJQYXRoLCBjZW5zb3IsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgsIG9yaWdpbmFsS2V5LCBuLCBudiwgb3YsIGtJc1djLCB3Y2ssIGksIGxhc3RQYXRoSW5kZXgsIHJlZGFjdFBhdGhDdXJyZW50LCBzdG9yZSwgb1tvcmlnaW5hbEtleV0sIGRlcHRoICsgMSlcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAoa0lzV2MgfHwgKHR5cGVvZiB3Y292ID09PSAnb2JqZWN0JyAmJiB3Y292ICE9PSBudWxsICYmIGsgaW4gd2NvdikpIHtcbiAgICAgICAgICAgIGlmIChrSXNXYykge1xuICAgICAgICAgICAgICBvdiA9IHdjb3ZcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIG92ID0gd2NvdltrXVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbnYgPSAoaSAhPT0gbGFzdFBhdGhJbmRleClcbiAgICAgICAgICAgICAgPyBvdlxuICAgICAgICAgICAgICA6IChpc0NlbnNvckZjdFxuICAgICAgICAgICAgICAgID8gKGNlbnNvckZjdFRha2VzUGF0aCA/IGNlbnNvcihvdiwgWy4uLnBhdGgsIG9yaWdpbmFsS2V5LCAuLi5hZnRlclBhdGhdKSA6IGNlbnNvcihvdikpXG4gICAgICAgICAgICAgICAgOiBjZW5zb3IpXG4gICAgICAgICAgICBpZiAoa0lzV2MpIHtcbiAgICAgICAgICAgICAgY29uc3QgcnYgPSByZXN0b3JlSW5zdHIobm9kZShyZWRhY3RQYXRoQ3VycmVudCwgd2NrLCBkZXB0aCksIG92LCBvW29yaWdpbmFsS2V5XSlcbiAgICAgICAgICAgICAgc3RvcmUucHVzaChydilcbiAgICAgICAgICAgICAgblt3Y2tdID0gbnZcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGlmICh3Y292W2tdID09PSBudikge1xuICAgICAgICAgICAgICAgIC8vIHBhc3NcbiAgICAgICAgICAgICAgfSBlbHNlIGlmICgobnYgPT09IHVuZGVmaW5lZCAmJiBjZW5zb3IgIT09IHVuZGVmaW5lZCkgfHwgKGhhcyh3Y292LCBrKSAmJiBudiA9PT0gb3YpKSB7XG4gICAgICAgICAgICAgICAgcmVkYWN0UGF0aEN1cnJlbnQgPSBub2RlKHJlZGFjdFBhdGhDdXJyZW50LCB3Y2ssIGRlcHRoKVxuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJlZGFjdFBhdGhDdXJyZW50ID0gbm9kZShyZWRhY3RQYXRoQ3VycmVudCwgd2NrLCBkZXB0aClcbiAgICAgICAgICAgICAgICBjb25zdCBydiA9IHJlc3RvcmVJbnN0cihub2RlKHJlZGFjdFBhdGhDdXJyZW50LCBrLCBkZXB0aCArIDEpLCBvdiwgb1tvcmlnaW5hbEtleV0pXG4gICAgICAgICAgICAgICAgc3RvcmUucHVzaChydilcbiAgICAgICAgICAgICAgICB3Y292W2tdID0gbnZcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgd2MgPSBudWxsXG4gICAgfSBlbHNlIHtcbiAgICAgIG92ID0gbltrXVxuICAgICAgcmVkYWN0UGF0aEN1cnJlbnQgPSBub2RlKHJlZGFjdFBhdGhDdXJyZW50LCBrLCBkZXB0aClcbiAgICAgIG52ID0gKGkgIT09IGxhc3RQYXRoSW5kZXgpXG4gICAgICAgID8gb3ZcbiAgICAgICAgOiAoaXNDZW5zb3JGY3RcbiAgICAgICAgICA/IChjZW5zb3JGY3RUYWtlc1BhdGggPyBjZW5zb3Iob3YsIFsuLi5wYXRoLCBvcmlnaW5hbEtleSwgLi4uYWZ0ZXJQYXRoXSkgOiBjZW5zb3Iob3YpKVxuICAgICAgICAgIDogY2Vuc29yKVxuICAgICAgaWYgKChoYXMobiwgaykgJiYgbnYgPT09IG92KSB8fCAobnYgPT09IHVuZGVmaW5lZCAmJiBjZW5zb3IgIT09IHVuZGVmaW5lZCkpIHtcbiAgICAgICAgLy8gcGFzc1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcnYgPSByZXN0b3JlSW5zdHIocmVkYWN0UGF0aEN1cnJlbnQsIG92LCBvW29yaWdpbmFsS2V5XSlcbiAgICAgICAgc3RvcmUucHVzaChydilcbiAgICAgICAgbltrXSA9IG52XG4gICAgICB9XG4gICAgICBuID0gbltrXVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG4gIT09ICdvYmplY3QnKSBicmVha1xuICAgIC8vIHByZXZlbnQgY2lyY3VsYXIgc3RydWN0dXJlLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL3Bpbm9qcy9waW5vL2lzc3Vlcy8xNTEzXG4gICAgaWYgKG92ID09PSBvb3YgfHwgdHlwZW9mIG92ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgLy8gcGFzc1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXQgKG8sIHApIHtcbiAgdmFyIGkgPSAtMVxuICB2YXIgbCA9IHAubGVuZ3RoXG4gIHZhciBuID0gb1xuICB3aGlsZSAobiAhPSBudWxsICYmICsraSA8IGwpIHtcbiAgICBuID0gbltwW2ldXVxuICB9XG4gIHJldHVybiBuXG59XG5cbmZ1bmN0aW9uIGl0ZXJhdGVOdGhMZXZlbCAod2NvdiwgbGV2ZWwsIGssIHBhdGgsIGFmdGVyUGF0aCwgY2Vuc29yLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoLCBvcmlnaW5hbEtleSwgbiwgbnYsIG92LCBrSXNXYywgd2NrLCBpLCBsYXN0UGF0aEluZGV4LCByZWRhY3RQYXRoQ3VycmVudCwgc3RvcmUsIHBhcmVudCwgZGVwdGgpIHtcbiAgaWYgKGxldmVsID09PSAwKSB7XG4gICAgaWYgKGtJc1djIHx8ICh0eXBlb2Ygd2NvdiA9PT0gJ29iamVjdCcgJiYgd2NvdiAhPT0gbnVsbCAmJiBrIGluIHdjb3YpKSB7XG4gICAgICBpZiAoa0lzV2MpIHtcbiAgICAgICAgb3YgPSB3Y292XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBvdiA9IHdjb3Zba11cbiAgICAgIH1cbiAgICAgIG52ID0gKGkgIT09IGxhc3RQYXRoSW5kZXgpXG4gICAgICAgID8gb3ZcbiAgICAgICAgOiAoaXNDZW5zb3JGY3RcbiAgICAgICAgICA/IChjZW5zb3JGY3RUYWtlc1BhdGggPyBjZW5zb3Iob3YsIFsuLi5wYXRoLCBvcmlnaW5hbEtleSwgLi4uYWZ0ZXJQYXRoXSkgOiBjZW5zb3Iob3YpKVxuICAgICAgICAgIDogY2Vuc29yKVxuICAgICAgaWYgKGtJc1djKSB7XG4gICAgICAgIGNvbnN0IHJ2ID0gcmVzdG9yZUluc3RyKHJlZGFjdFBhdGhDdXJyZW50LCBvdiwgcGFyZW50KVxuICAgICAgICBzdG9yZS5wdXNoKHJ2KVxuICAgICAgICBuW3dja10gPSBudlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHdjb3Zba10gPT09IG52KSB7XG4gICAgICAgICAgLy8gcGFzc1xuICAgICAgICB9IGVsc2UgaWYgKChudiA9PT0gdW5kZWZpbmVkICYmIGNlbnNvciAhPT0gdW5kZWZpbmVkKSB8fCAoaGFzKHdjb3YsIGspICYmIG52ID09PSBvdikpIHtcbiAgICAgICAgICAvLyBwYXNzXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgcnYgPSByZXN0b3JlSW5zdHIobm9kZShyZWRhY3RQYXRoQ3VycmVudCwgaywgZGVwdGggKyAxKSwgb3YsIHBhcmVudClcbiAgICAgICAgICBzdG9yZS5wdXNoKHJ2KVxuICAgICAgICAgIHdjb3Zba10gPSBudlxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3Qga2V5IGluIHdjb3YpIHtcbiAgICBpZiAodHlwZW9mIHdjb3Zba2V5XSA9PT0gJ29iamVjdCcpIHtcbiAgICAgIHJlZGFjdFBhdGhDdXJyZW50ID0gbm9kZShyZWRhY3RQYXRoQ3VycmVudCwga2V5LCBkZXB0aClcbiAgICAgIGl0ZXJhdGVOdGhMZXZlbCh3Y292W2tleV0sIGxldmVsIC0gMSwgaywgcGF0aCwgYWZ0ZXJQYXRoLCBjZW5zb3IsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgsIG9yaWdpbmFsS2V5LCBuLCBudiwgb3YsIGtJc1djLCB3Y2ssIGksIGxhc3RQYXRoSW5kZXgsIHJlZGFjdFBhdGhDdXJyZW50LCBzdG9yZSwgcGFyZW50LCBkZXB0aCArIDEpXG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gVHJlZU5vZGVcbiAqIEBwcm9wIHtUcmVlTm9kZX0gW3BhcmVudF0gcmVmZXJlbmNlIHRvIHRoZSBwYXJlbnQgb2YgdGhpcyBub2RlIGluIHRoZSB0cmVlLCBvciBgbnVsbGAgaWYgdGhlcmUgaXMgbm8gcGFyZW50XG4gKiBAcHJvcCB7c3RyaW5nfSBrZXkgdGhlIGtleSB0aGF0IHRoaXMgbm9kZSByZXByZXNlbnRzIChrZXkgaGVyZSBiZWluZyBwYXJ0IG9mIHRoZSBwYXRoIGJlaW5nIHJlZGFjdGVkXG4gKiBAcHJvcCB7VHJlZU5vZGVbXX0gY2hpbGRyZW4gdGhlIGNoaWxkIG5vZGVzIG9mIHRoaXMgbm9kZVxuICogQHByb3Age251bWJlcn0gZGVwdGggdGhlIGRlcHRoIG9mIHRoaXMgbm9kZSBpbiB0aGUgdHJlZVxuICovXG5cbi8qKlxuICogaW5zdGFudGlhdGUgYSBuZXcsIGVtcHR5IHRyZWVcbiAqIEByZXR1cm5zIHtUcmVlTm9kZX1cbiAqL1xuZnVuY3Rpb24gdHJlZSAoKSB7XG4gIHJldHVybiB7IHBhcmVudDogbnVsbCwga2V5OiBudWxsLCBjaGlsZHJlbjogW10sIGRlcHRoOiAwIH1cbn1cblxuLyoqXG4gKiBjcmVhdGVzIGEgbmV3IG5vZGUgaW4gdGhlIHRyZWUsIGF0dGFjaGluZyBpdCBhcyBhIGNoaWxkIG9mIHRoZSBwcm92aWRlZCBwYXJlbnQgbm9kZVxuICogaWYgdGhlIHNwZWNpZmllZCBkZXB0aCBtYXRjaGVzIHRoZSBwYXJlbnQgZGVwdGgsIGFkZHMgdGhlIG5ldyBub2RlIGFzIGEgX3NpYmxpbmdfIG9mIHRoZSBwYXJlbnQgaW5zdGVhZFxuICAqIEBwYXJhbSB7VHJlZU5vZGV9IHBhcmVudCB0aGUgcGFyZW50IG5vZGUgdG8gYWRkIGEgbmV3IG5vZGUgdG8gKGlmIHRoZSBwYXJlbnQgZGVwdGggbWF0Y2hlcyB0aGUgcHJvdmlkZWQgYGRlcHRoYCB2YWx1ZSwgd2lsbCBpbnN0ZWFkIGFkZCBhcyBhIHNpYmxpbmcgb2YgdGhpc1xuICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgdGhlIGtleSB0aGF0IHRoZSBuZXcgbm9kZSByZXByZXNlbnRzIChrZXkgaGVyZSBiZWluZyBwYXJ0IG9mIHRoZSBwYXRoIGJlaW5nIHJlZGFjdGVkKVxuICAqIEBwYXJhbSB7bnVtYmVyfSBkZXB0aCB0aGUgZGVwdGggb2YgdGhlIG5ldyBub2RlIGluIHRoZSB0cmVlIC0gdXNlZCB0byBkZXRlcm1pbmcgd2hldGhlciB0byBhZGQgdGhlIG5ldyBub2RlIGFzIGEgY2hpbGQgb3Igc2libGluZyBvZiB0aGUgcHJvdmlkZWQgYHBhcmVudGAgbm9kZVxuICAqIEByZXR1cm5zIHtUcmVlTm9kZX0gYSByZWZlcmVuY2UgdG8gdGhlIG5ld2x5IGNyZWF0ZWQgbm9kZSBpbiB0aGUgdHJlZVxuICovXG5mdW5jdGlvbiBub2RlIChwYXJlbnQsIGtleSwgZGVwdGgpIHtcbiAgaWYgKHBhcmVudC5kZXB0aCA9PT0gZGVwdGgpIHtcbiAgICByZXR1cm4gbm9kZShwYXJlbnQucGFyZW50LCBrZXksIGRlcHRoKVxuICB9XG5cbiAgdmFyIGNoaWxkID0ge1xuICAgIHBhcmVudCxcbiAgICBrZXksXG4gICAgZGVwdGgsXG4gICAgY2hpbGRyZW46IFtdXG4gIH1cblxuICBwYXJlbnQuY2hpbGRyZW4ucHVzaChjaGlsZClcblxuICByZXR1cm4gY2hpbGRcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7b2JqZWN0fSBSZXN0b3JlSW5zdHJ1Y3Rpb25cbiAqIEBwcm9wIHtzdHJpbmdbXX0gcGF0aCBhIHJldmVyc2Utb3JkZXIgcGF0aCB0aGF0IGNhbiBiZSB1c2VkIHRvIGZpbmQgdGhlIGNvcnJlY3QgaW5zZXJ0aW9uIHBvaW50IHRvIHJlc3RvcmUgYSBgdmFsdWVgIGZvciB0aGUgZ2l2ZW4gYHBhcmVudGAgb2JqZWN0XG4gKiBAcHJvcCB7Kn0gdmFsdWUgdGhlIHZhbHVlIHRvIHJlc3RvcmVcbiAqIEBwcm9wIHtvYmplY3R9IHRhcmdldCB0aGUgb2JqZWN0IHRvIHJlc3RvcmUgdGhlIGB2YWx1ZWAgaW5cbiAqL1xuXG4vKipcbiAqIGNyZWF0ZSBhIHJlc3RvcmUgaW5zdHJ1Y3Rpb24gZm9yIHRoZSBnaXZlbiByZWRhY3RQYXRoIG5vZGVcbiAqIGdlbmVyYXRlcyBhIHBhdGggaW4gcmV2ZXJzZSBvcmRlciBieSB3YWxraW5nIHVwIHRoZSByZWRhY3RQYXRoIHRyZWVcbiAqIEBwYXJhbSB7VHJlZU5vZGV9IG5vZGUgYSB0cmVlIG5vZGUgdGhhdCBzaG91bGQgYmUgYXQgdGhlIGJvdHRvbSBvZiB0aGUgcmVkYWN0IHBhdGggKGkuZS4gaGF2ZSBubyBjaGlsZHJlbikgLSB0aGlzIHdpbGwgYmUgdXNlZCB0byB3YWxrIHVwIHRoZSByZWRhY3QgcGF0aCB0cmVlIHRvIGNvbnN0cnVjdCB0aGUgcGF0aCBuZWVkZWQgdG8gcmVzdG9yZVxuICogQHBhcmFtIHsqfSB2YWx1ZSB0aGUgdmFsdWUgdG8gcmVzdG9yZVxuICogQHBhcmFtIHtvYmplY3R9IHRhcmdldCBhIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IG9iamVjdCB0byBhcHBseSB0aGUgcmVzdG9yZSBpbnN0cnVjdGlvbiB0b1xuICogQHJldHVybnMge1Jlc3RvcmVJbnN0cnVjdGlvbn0gYW4gaW5zdHJ1Y3Rpb24gdXNlZCB0byByZXN0b3JlIGEgbmVzdGVkIHZhbHVlIGZvciBhIHNwZWNpZmljIG9iamVjdFxuICovXG5mdW5jdGlvbiByZXN0b3JlSW5zdHIgKG5vZGUsIHZhbHVlLCB0YXJnZXQpIHtcbiAgbGV0IGN1cnJlbnQgPSBub2RlXG4gIGNvbnN0IHBhdGggPSBbXVxuICBkbyB7XG4gICAgcGF0aC5wdXNoKGN1cnJlbnQua2V5KVxuICAgIGN1cnJlbnQgPSBjdXJyZW50LnBhcmVudFxuICB9IHdoaWxlIChjdXJyZW50LnBhcmVudCAhPSBudWxsKVxuXG4gIHJldHVybiB7IHBhdGgsIHZhbHVlLCB0YXJnZXQgfVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/modifiers.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/parse.js":
/*!***********************************************!*\
!*** ./node_modules/fast-redact/lib/parse.js ***!
\***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst rx = __webpack_require__(/*! ./rx */ \"(action-browser)/./node_modules/fast-redact/lib/rx.js\")\n\nmodule.exports = parse\n\nfunction parse ({ paths }) {\n const wildcards = []\n var wcLen = 0\n const secret = paths.reduce(function (o, strPath, ix) {\n var path = strPath.match(rx).map((p) => p.replace(/'|\"|`/g, ''))\n const leadingBracket = strPath[0] === '['\n path = path.map((p) => {\n if (p[0] === '[') return p.substr(1, p.length - 2)\n else return p\n })\n const star = path.indexOf('*')\n if (star > -1) {\n const before = path.slice(0, star)\n const beforeStr = before.join('.')\n const after = path.slice(star + 1, path.length)\n const nested = after.length > 0\n wcLen++\n wildcards.push({\n before,\n beforeStr,\n after,\n nested\n })\n } else {\n o[strPath] = {\n path: path,\n val: undefined,\n precensored: false,\n circle: '',\n escPath: JSON.stringify(strPath),\n leadingBracket: leadingBracket\n }\n }\n return o\n }, {})\n\n return { wildcards, wcLen, secret }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvcGFyc2UuanMiLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosV0FBVyxtQkFBTyxDQUFDLG1FQUFNOztBQUV6Qjs7QUFFQSxrQkFBa0IsT0FBTztBQUN6QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLElBQUk7O0FBRVAsV0FBVztBQUNYIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvcGFyc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHJ4ID0gcmVxdWlyZSgnLi9yeCcpXG5cbm1vZHVsZS5leHBvcnRzID0gcGFyc2VcblxuZnVuY3Rpb24gcGFyc2UgKHsgcGF0aHMgfSkge1xuICBjb25zdCB3aWxkY2FyZHMgPSBbXVxuICB2YXIgd2NMZW4gPSAwXG4gIGNvbnN0IHNlY3JldCA9IHBhdGhzLnJlZHVjZShmdW5jdGlvbiAobywgc3RyUGF0aCwgaXgpIHtcbiAgICB2YXIgcGF0aCA9IHN0clBhdGgubWF0Y2gocngpLm1hcCgocCkgPT4gcC5yZXBsYWNlKC8nfFwifGAvZywgJycpKVxuICAgIGNvbnN0IGxlYWRpbmdCcmFja2V0ID0gc3RyUGF0aFswXSA9PT0gJ1snXG4gICAgcGF0aCA9IHBhdGgubWFwKChwKSA9PiB7XG4gICAgICBpZiAocFswXSA9PT0gJ1snKSByZXR1cm4gcC5zdWJzdHIoMSwgcC5sZW5ndGggLSAyKVxuICAgICAgZWxzZSByZXR1cm4gcFxuICAgIH0pXG4gICAgY29uc3Qgc3RhciA9IHBhdGguaW5kZXhPZignKicpXG4gICAgaWYgKHN0YXIgPiAtMSkge1xuICAgICAgY29uc3QgYmVmb3JlID0gcGF0aC5zbGljZSgwLCBzdGFyKVxuICAgICAgY29uc3QgYmVmb3JlU3RyID0gYmVmb3JlLmpvaW4oJy4nKVxuICAgICAgY29uc3QgYWZ0ZXIgPSBwYXRoLnNsaWNlKHN0YXIgKyAxLCBwYXRoLmxlbmd0aClcbiAgICAgIGNvbnN0IG5lc3RlZCA9IGFmdGVyLmxlbmd0aCA+IDBcbiAgICAgIHdjTGVuKytcbiAgICAgIHdpbGRjYXJkcy5wdXNoKHtcbiAgICAgICAgYmVmb3JlLFxuICAgICAgICBiZWZvcmVTdHIsXG4gICAgICAgIGFmdGVyLFxuICAgICAgICBuZXN0ZWRcbiAgICAgIH0pXG4gICAgfSBlbHNlIHtcbiAgICAgIG9bc3RyUGF0aF0gPSB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIHZhbDogdW5kZWZpbmVkLFxuICAgICAgICBwcmVjZW5zb3JlZDogZmFsc2UsXG4gICAgICAgIGNpcmNsZTogJycsXG4gICAgICAgIGVzY1BhdGg6IEpTT04uc3RyaW5naWZ5KHN0clBhdGgpLFxuICAgICAgICBsZWFkaW5nQnJhY2tldDogbGVhZGluZ0JyYWNrZXRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9cbiAgfSwge30pXG5cbiAgcmV0dXJuIHsgd2lsZGNhcmRzLCB3Y0xlbiwgc2VjcmV0IH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/parse.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/redactor.js":
/*!**************************************************!*\
!*** ./node_modules/fast-redact/lib/redactor.js ***!
\**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst rx = __webpack_require__(/*! ./rx */ \"(action-browser)/./node_modules/fast-redact/lib/rx.js\")\n\nmodule.exports = redactor\n\nfunction redactor ({ secret, serialize, wcLen, strict, isCensorFct, censorFctTakesPath }, state) {\n /* eslint-disable-next-line */\n const redact = Function('o', `\n if (typeof o !== 'object' || o == null) {\n ${strictImpl(strict, serialize)}\n }\n const { censor, secret } = this\n const originalSecret = {}\n const secretKeys = Object.keys(secret)\n for (var i = 0; i < secretKeys.length; i++) {\n originalSecret[secretKeys[i]] = secret[secretKeys[i]]\n }\n\n ${redactTmpl(secret, isCensorFct, censorFctTakesPath)}\n this.compileRestore()\n ${dynamicRedactTmpl(wcLen > 0, isCensorFct, censorFctTakesPath)}\n this.secret = originalSecret\n ${resultTmpl(serialize)}\n `).bind(state)\n\n redact.state = state\n\n if (serialize === false) {\n redact.restore = (o) => state.restore(o)\n }\n\n return redact\n}\n\nfunction redactTmpl (secret, isCensorFct, censorFctTakesPath) {\n return Object.keys(secret).map((path) => {\n const { escPath, leadingBracket, path: arrPath } = secret[path]\n const skip = leadingBracket ? 1 : 0\n const delim = leadingBracket ? '' : '.'\n const hops = []\n var match\n while ((match = rx.exec(path)) !== null) {\n const [ , ix ] = match\n const { index, input } = match\n if (index > skip) hops.push(input.substring(0, index - (ix ? 0 : 1)))\n }\n var existence = hops.map((p) => `o${delim}${p}`).join(' && ')\n if (existence.length === 0) existence += `o${delim}${path} != null`\n else existence += ` && o${delim}${path} != null`\n\n const circularDetection = `\n switch (true) {\n ${hops.reverse().map((p) => `\n case o${delim}${p} === censor:\n secret[${escPath}].circle = ${JSON.stringify(p)}\n break\n `).join('\\n')}\n }\n `\n\n const censorArgs = censorFctTakesPath\n ? `val, ${JSON.stringify(arrPath)}`\n : `val`\n\n return `\n if (${existence}) {\n const val = o${delim}${path}\n if (val === censor) {\n secret[${escPath}].precensored = true\n } else {\n secret[${escPath}].val = val\n o${delim}${path} = ${isCensorFct ? `censor(${censorArgs})` : 'censor'}\n ${circularDetection}\n }\n }\n `\n }).join('\\n')\n}\n\nfunction dynamicRedactTmpl (hasWildcards, isCensorFct, censorFctTakesPath) {\n return hasWildcards === true ? `\n {\n const { wildcards, wcLen, groupRedact, nestedRedact } = this\n for (var i = 0; i < wcLen; i++) {\n const { before, beforeStr, after, nested } = wildcards[i]\n if (nested === true) {\n secret[beforeStr] = secret[beforeStr] || []\n nestedRedact(secret[beforeStr], o, before, after, censor, ${isCensorFct}, ${censorFctTakesPath})\n } else secret[beforeStr] = groupRedact(o, before, censor, ${isCensorFct}, ${censorFctTakesPath})\n }\n }\n ` : ''\n}\n\nfunction resultTmpl (serialize) {\n return serialize === false ? `return o` : `\n var s = this.serialize(o)\n this.restore(o)\n return s\n `\n}\n\nfunction strictImpl (strict, serialize) {\n return strict === true\n ? `throw Error('fast-redact: primitives cannot be redacted')`\n : serialize === false ? `return o` : `return this.serialize(o)`\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvcmVkYWN0b3IuanMiLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosV0FBVyxtQkFBTyxDQUFDLG1FQUFNOztBQUV6Qjs7QUFFQSxxQkFBcUIsbUVBQW1FO0FBQ3hGO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFlBQVksaUJBQWlCO0FBQzdCO0FBQ0E7QUFDQSxvQkFBb0IsdUJBQXVCO0FBQzNDO0FBQ0E7O0FBRUEsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOO0FBQ0EsTUFBTTtBQUNOOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxZQUFZLHlDQUF5QztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLGVBQWU7QUFDN0I7QUFDQTtBQUNBLHdDQUF3QyxNQUFNLEVBQUUsRUFBRTtBQUNsRCxpREFBaUQsTUFBTSxFQUFFLE1BQU07QUFDL0QsOEJBQThCLE1BQU0sRUFBRSxNQUFNOztBQUU1QztBQUNBO0FBQ0EsVUFBVTtBQUNWLGtCQUFrQixNQUFNLEVBQUUsR0FBRztBQUM3QixxQkFBcUIsUUFBUSxhQUFhO0FBQzFDO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsZ0JBQWdCLHdCQUF3QjtBQUN4Qzs7QUFFQTtBQUNBLFlBQVksVUFBVTtBQUN0Qix1QkFBdUIsTUFBTSxFQUFFO0FBQy9CO0FBQ0EsbUJBQW1CLFFBQVE7QUFDM0IsVUFBVTtBQUNWLG1CQUFtQixRQUFRO0FBQzNCLGFBQWEsTUFBTSxFQUFFLE1BQU0sSUFBSSx3QkFBd0IsV0FBVztBQUNsRSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsOENBQThDO0FBQzVELHNCQUFzQixXQUFXO0FBQ2pDLGdCQUFnQixtQ0FBbUM7QUFDbkQ7QUFDQTtBQUNBLHNFQUFzRSxZQUFZLElBQUksbUJBQW1CO0FBQ3pHLFVBQVUsMERBQTBELFlBQVksSUFBSSxtQkFBbUI7QUFDdkc7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3JlZGFjdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5jb25zdCByeCA9IHJlcXVpcmUoJy4vcngnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlZGFjdG9yXG5cbmZ1bmN0aW9uIHJlZGFjdG9yICh7IHNlY3JldCwgc2VyaWFsaXplLCB3Y0xlbiwgc3RyaWN0LCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoIH0sIHN0YXRlKSB7XG4gIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICBjb25zdCByZWRhY3QgPSBGdW5jdGlvbignbycsIGBcbiAgICBpZiAodHlwZW9mIG8gIT09ICdvYmplY3QnIHx8IG8gPT0gbnVsbCkge1xuICAgICAgJHtzdHJpY3RJbXBsKHN0cmljdCwgc2VyaWFsaXplKX1cbiAgICB9XG4gICAgY29uc3QgeyBjZW5zb3IsIHNlY3JldCB9ID0gdGhpc1xuICAgIGNvbnN0IG9yaWdpbmFsU2VjcmV0ID0ge31cbiAgICBjb25zdCBzZWNyZXRLZXlzID0gT2JqZWN0LmtleXMoc2VjcmV0KVxuICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VjcmV0S2V5cy5sZW5ndGg7IGkrKykge1xuICAgICAgb3JpZ2luYWxTZWNyZXRbc2VjcmV0S2V5c1tpXV0gPSBzZWNyZXRbc2VjcmV0S2V5c1tpXV1cbiAgICB9XG5cbiAgICAke3JlZGFjdFRtcGwoc2VjcmV0LCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoKX1cbiAgICB0aGlzLmNvbXBpbGVSZXN0b3JlKClcbiAgICAke2R5bmFtaWNSZWRhY3RUbXBsKHdjTGVuID4gMCwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCl9XG4gICAgdGhpcy5zZWNyZXQgPSBvcmlnaW5hbFNlY3JldFxuICAgICR7cmVzdWx0VG1wbChzZXJpYWxpemUpfVxuICBgKS5iaW5kKHN0YXRlKVxuXG4gIHJlZGFjdC5zdGF0ZSA9IHN0YXRlXG5cbiAgaWYgKHNlcmlhbGl6ZSA9PT0gZmFsc2UpIHtcbiAgICByZWRhY3QucmVzdG9yZSA9IChvKSA9PiBzdGF0ZS5yZXN0b3JlKG8pXG4gIH1cblxuICByZXR1cm4gcmVkYWN0XG59XG5cbmZ1bmN0aW9uIHJlZGFjdFRtcGwgKHNlY3JldCwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCkge1xuICByZXR1cm4gT2JqZWN0LmtleXMoc2VjcmV0KS5tYXAoKHBhdGgpID0+IHtcbiAgICBjb25zdCB7IGVzY1BhdGgsIGxlYWRpbmdCcmFja2V0LCBwYXRoOiBhcnJQYXRoIH0gPSBzZWNyZXRbcGF0aF1cbiAgICBjb25zdCBza2lwID0gbGVhZGluZ0JyYWNrZXQgPyAxIDogMFxuICAgIGNvbnN0IGRlbGltID0gbGVhZGluZ0JyYWNrZXQgPyAnJyA6ICcuJ1xuICAgIGNvbnN0IGhvcHMgPSBbXVxuICAgIHZhciBtYXRjaFxuICAgIHdoaWxlICgobWF0Y2ggPSByeC5leGVjKHBhdGgpKSAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgWyAsIGl4IF0gPSBtYXRjaFxuICAgICAgY29uc3QgeyBpbmRleCwgaW5wdXQgfSA9IG1hdGNoXG4gICAgICBpZiAoaW5kZXggPiBza2lwKSBob3BzLnB1c2goaW5wdXQuc3Vic3RyaW5nKDAsIGluZGV4IC0gKGl4ID8gMCA6IDEpKSlcbiAgICB9XG4gICAgdmFyIGV4aXN0ZW5jZSA9IGhvcHMubWFwKChwKSA9PiBgbyR7ZGVsaW19JHtwfWApLmpvaW4oJyAmJiAnKVxuICAgIGlmIChleGlzdGVuY2UubGVuZ3RoID09PSAwKSBleGlzdGVuY2UgKz0gYG8ke2RlbGltfSR7cGF0aH0gIT0gbnVsbGBcbiAgICBlbHNlIGV4aXN0ZW5jZSArPSBgICYmIG8ke2RlbGltfSR7cGF0aH0gIT0gbnVsbGBcblxuICAgIGNvbnN0IGNpcmN1bGFyRGV0ZWN0aW9uID0gYFxuICAgICAgc3dpdGNoICh0cnVlKSB7XG4gICAgICAgICR7aG9wcy5yZXZlcnNlKCkubWFwKChwKSA9PiBgXG4gICAgICAgICAgY2FzZSBvJHtkZWxpbX0ke3B9ID09PSBjZW5zb3I6XG4gICAgICAgICAgICBzZWNyZXRbJHtlc2NQYXRofV0uY2lyY2xlID0gJHtKU09OLnN0cmluZ2lmeShwKX1cbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIGApLmpvaW4oJ1xcbicpfVxuICAgICAgfVxuICAgIGBcblxuICAgIGNvbnN0IGNlbnNvckFyZ3MgPSBjZW5zb3JGY3RUYWtlc1BhdGhcbiAgICAgID8gYHZhbCwgJHtKU09OLnN0cmluZ2lmeShhcnJQYXRoKX1gXG4gICAgICA6IGB2YWxgXG5cbiAgICByZXR1cm4gYFxuICAgICAgaWYgKCR7ZXhpc3RlbmNlfSkge1xuICAgICAgICBjb25zdCB2YWwgPSBvJHtkZWxpbX0ke3BhdGh9XG4gICAgICAgIGlmICh2YWwgPT09IGNlbnNvcikge1xuICAgICAgICAgIHNlY3JldFske2VzY1BhdGh9XS5wcmVjZW5zb3JlZCA9IHRydWVcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBzZWNyZXRbJHtlc2NQYXRofV0udmFsID0gdmFsXG4gICAgICAgICAgbyR7ZGVsaW19JHtwYXRofSA9ICR7aXNDZW5zb3JGY3QgPyBgY2Vuc29yKCR7Y2Vuc29yQXJnc30pYCA6ICdjZW5zb3InfVxuICAgICAgICAgICR7Y2lyY3VsYXJEZXRlY3Rpb259XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgXG4gIH0pLmpvaW4oJ1xcbicpXG59XG5cbmZ1bmN0aW9uIGR5bmFtaWNSZWRhY3RUbXBsIChoYXNXaWxkY2FyZHMsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgpIHtcbiAgcmV0dXJuIGhhc1dpbGRjYXJkcyA9PT0gdHJ1ZSA/IGBcbiAgICB7XG4gICAgICBjb25zdCB7IHdpbGRjYXJkcywgd2NMZW4sIGdyb3VwUmVkYWN0LCBuZXN0ZWRSZWRhY3QgfSA9IHRoaXNcbiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgd2NMZW47IGkrKykge1xuICAgICAgICBjb25zdCB7IGJlZm9yZSwgYmVmb3JlU3RyLCBhZnRlciwgbmVzdGVkIH0gPSB3aWxkY2FyZHNbaV1cbiAgICAgICAgaWYgKG5lc3RlZCA9PT0gdHJ1ZSkge1xuICAgICAgICAgIHNlY3JldFtiZWZvcmVTdHJdID0gc2VjcmV0W2JlZm9yZVN0cl0gfHwgW11cbiAgICAgICAgICBuZXN0ZWRSZWRhY3Qoc2VjcmV0W2JlZm9yZVN0cl0sIG8sIGJlZm9yZSwgYWZ0ZXIsIGNlbnNvciwgJHtpc0NlbnNvckZjdH0sICR7Y2Vuc29yRmN0VGFrZXNQYXRofSlcbiAgICAgICAgfSBlbHNlIHNlY3JldFtiZWZvcmVTdHJdID0gZ3JvdXBSZWRhY3QobywgYmVmb3JlLCBjZW5zb3IsICR7aXNDZW5zb3JGY3R9LCAke2NlbnNvckZjdFRha2VzUGF0aH0pXG4gICAgICB9XG4gICAgfVxuICBgIDogJydcbn1cblxuZnVuY3Rpb24gcmVzdWx0VG1wbCAoc2VyaWFsaXplKSB7XG4gIHJldHVybiBzZXJpYWxpemUgPT09IGZhbHNlID8gYHJldHVybiBvYCA6IGBcbiAgICB2YXIgcyA9IHRoaXMuc2VyaWFsaXplKG8pXG4gICAgdGhpcy5yZXN0b3JlKG8pXG4gICAgcmV0dXJuIHNcbiAgYFxufVxuXG5mdW5jdGlvbiBzdHJpY3RJbXBsIChzdHJpY3QsIHNlcmlhbGl6ZSkge1xuICByZXR1cm4gc3RyaWN0ID09PSB0cnVlXG4gICAgPyBgdGhyb3cgRXJyb3IoJ2Zhc3QtcmVkYWN0OiBwcmltaXRpdmVzIGNhbm5vdCBiZSByZWRhY3RlZCcpYFxuICAgIDogc2VyaWFsaXplID09PSBmYWxzZSA/IGByZXR1cm4gb2AgOiBgcmV0dXJuIHRoaXMuc2VyaWFsaXplKG8pYFxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/redactor.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/restorer.js":
/*!**************************************************!*\
!*** ./node_modules/fast-redact/lib/restorer.js ***!
\**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst { groupRestore, nestedRestore } = __webpack_require__(/*! ./modifiers */ \"(action-browser)/./node_modules/fast-redact/lib/modifiers.js\")\n\nmodule.exports = restorer\n\nfunction restorer () {\n return function compileRestore () {\n if (this.restore) {\n this.restore.state.secret = this.secret\n return\n }\n const { secret, wcLen } = this\n const paths = Object.keys(secret)\n const resetters = resetTmpl(secret, paths)\n const hasWildcards = wcLen > 0\n const state = hasWildcards ? { secret, groupRestore, nestedRestore } : { secret }\n /* eslint-disable-next-line */\n this.restore = Function(\n 'o',\n restoreTmpl(resetters, paths, hasWildcards)\n ).bind(state)\n this.restore.state = state\n }\n}\n\n/**\n * Mutates the original object to be censored by restoring its original values\n * prior to censoring.\n *\n * @param {object} secret Compiled object describing which target fields should\n * be censored and the field states.\n * @param {string[]} paths The list of paths to censor as provided at\n * initialization time.\n *\n * @returns {string} String of JavaScript to be used by `Function()`. The\n * string compiles to the function that does the work in the description.\n */\nfunction resetTmpl (secret, paths) {\n return paths.map((path) => {\n const { circle, escPath, leadingBracket } = secret[path]\n const delim = leadingBracket ? '' : '.'\n const reset = circle\n ? `o.${circle} = secret[${escPath}].val`\n : `o${delim}${path} = secret[${escPath}].val`\n const clear = `secret[${escPath}].val = undefined`\n return `\n if (secret[${escPath}].val !== undefined) {\n try { ${reset} } catch (e) {}\n ${clear}\n }\n `\n }).join('')\n}\n\n/**\n * Creates the body of the restore function\n *\n * Restoration of the redacted object happens\n * backwards, in reverse order of redactions,\n * so that repeated redactions on the same object\n * property can be eventually rolled back to the\n * original value.\n *\n * This way dynamic redactions are restored first,\n * starting from the last one working backwards and\n * followed by the static ones.\n *\n * @returns {string} the body of the restore function\n */\nfunction restoreTmpl (resetters, paths, hasWildcards) {\n const dynamicReset = hasWildcards === true ? `\n const keys = Object.keys(secret)\n const len = keys.length\n for (var i = len - 1; i >= ${paths.length}; i--) {\n const k = keys[i]\n const o = secret[k]\n if (o) {\n if (o.flat === true) this.groupRestore(o)\n else this.nestedRestore(o)\n secret[k] = null\n }\n }\n ` : ''\n\n return `\n const secret = this.secret\n ${dynamicReset}\n ${resetters}\n return o\n `\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvcmVzdG9yZXIuanMiLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosUUFBUSw4QkFBOEIsRUFBRSxtQkFBTyxDQUFDLGlGQUFhOztBQUU3RDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLGdCQUFnQjtBQUM1QjtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsc0NBQXNDLElBQUk7QUFDN0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsUUFBUTtBQUNuQjtBQUNBLFdBQVcsVUFBVTtBQUNyQjtBQUNBO0FBQ0EsYUFBYSxRQUFRO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxrQ0FBa0M7QUFDOUM7QUFDQTtBQUNBLGFBQWEsUUFBUSxXQUFXLFFBQVE7QUFDeEMsWUFBWSxNQUFNLEVBQUUsTUFBTSxXQUFXLFFBQVE7QUFDN0MsNEJBQTRCLFFBQVE7QUFDcEM7QUFDQSxtQkFBbUIsUUFBUTtBQUMzQixjQUFjLEVBQUUsU0FBUztBQUN6QixVQUFVO0FBQ1Y7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCLE9BQU8sZUFBZTtBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLE1BQU07QUFDTixNQUFNO0FBQ047QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvcmVzdG9yZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHsgZ3JvdXBSZXN0b3JlLCBuZXN0ZWRSZXN0b3JlIH0gPSByZXF1aXJlKCcuL21vZGlmaWVycycpXG5cbm1vZHVsZS5leHBvcnRzID0gcmVzdG9yZXJcblxuZnVuY3Rpb24gcmVzdG9yZXIgKCkge1xuICByZXR1cm4gZnVuY3Rpb24gY29tcGlsZVJlc3RvcmUgKCkge1xuICAgIGlmICh0aGlzLnJlc3RvcmUpIHtcbiAgICAgIHRoaXMucmVzdG9yZS5zdGF0ZS5zZWNyZXQgPSB0aGlzLnNlY3JldFxuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHsgc2VjcmV0LCB3Y0xlbiB9ID0gdGhpc1xuICAgIGNvbnN0IHBhdGhzID0gT2JqZWN0LmtleXMoc2VjcmV0KVxuICAgIGNvbnN0IHJlc2V0dGVycyA9IHJlc2V0VG1wbChzZWNyZXQsIHBhdGhzKVxuICAgIGNvbnN0IGhhc1dpbGRjYXJkcyA9IHdjTGVuID4gMFxuICAgIGNvbnN0IHN0YXRlID0gaGFzV2lsZGNhcmRzID8geyBzZWNyZXQsIGdyb3VwUmVzdG9yZSwgbmVzdGVkUmVzdG9yZSB9IDogeyBzZWNyZXQgfVxuICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgIHRoaXMucmVzdG9yZSA9IEZ1bmN0aW9uKFxuICAgICAgJ28nLFxuICAgICAgcmVzdG9yZVRtcGwocmVzZXR0ZXJzLCBwYXRocywgaGFzV2lsZGNhcmRzKVxuICAgICkuYmluZChzdGF0ZSlcbiAgICB0aGlzLnJlc3RvcmUuc3RhdGUgPSBzdGF0ZVxuICB9XG59XG5cbi8qKlxuICogTXV0YXRlcyB0aGUgb3JpZ2luYWwgb2JqZWN0IHRvIGJlIGNlbnNvcmVkIGJ5IHJlc3RvcmluZyBpdHMgb3JpZ2luYWwgdmFsdWVzXG4gKiBwcmlvciB0byBjZW5zb3JpbmcuXG4gKlxuICogQHBhcmFtIHtvYmplY3R9IHNlY3JldCBDb21waWxlZCBvYmplY3QgZGVzY3JpYmluZyB3aGljaCB0YXJnZXQgZmllbGRzIHNob3VsZFxuICogYmUgY2Vuc29yZWQgYW5kIHRoZSBmaWVsZCBzdGF0ZXMuXG4gKiBAcGFyYW0ge3N0cmluZ1tdfSBwYXRocyBUaGUgbGlzdCBvZiBwYXRocyB0byBjZW5zb3IgYXMgcHJvdmlkZWQgYXRcbiAqIGluaXRpYWxpemF0aW9uIHRpbWUuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gU3RyaW5nIG9mIEphdmFTY3JpcHQgdG8gYmUgdXNlZCBieSBgRnVuY3Rpb24oKWAuIFRoZVxuICogc3RyaW5nIGNvbXBpbGVzIHRvIHRoZSBmdW5jdGlvbiB0aGF0IGRvZXMgdGhlIHdvcmsgaW4gdGhlIGRlc2NyaXB0aW9uLlxuICovXG5mdW5jdGlvbiByZXNldFRtcGwgKHNlY3JldCwgcGF0aHMpIHtcbiAgcmV0dXJuIHBhdGhzLm1hcCgocGF0aCkgPT4ge1xuICAgIGNvbnN0IHsgY2lyY2xlLCBlc2NQYXRoLCBsZWFkaW5nQnJhY2tldCB9ID0gc2VjcmV0W3BhdGhdXG4gICAgY29uc3QgZGVsaW0gPSBsZWFkaW5nQnJhY2tldCA/ICcnIDogJy4nXG4gICAgY29uc3QgcmVzZXQgPSBjaXJjbGVcbiAgICAgID8gYG8uJHtjaXJjbGV9ID0gc2VjcmV0WyR7ZXNjUGF0aH1dLnZhbGBcbiAgICAgIDogYG8ke2RlbGltfSR7cGF0aH0gPSBzZWNyZXRbJHtlc2NQYXRofV0udmFsYFxuICAgIGNvbnN0IGNsZWFyID0gYHNlY3JldFske2VzY1BhdGh9XS52YWwgPSB1bmRlZmluZWRgXG4gICAgcmV0dXJuIGBcbiAgICAgIGlmIChzZWNyZXRbJHtlc2NQYXRofV0udmFsICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgdHJ5IHsgJHtyZXNldH0gfSBjYXRjaCAoZSkge31cbiAgICAgICAgJHtjbGVhcn1cbiAgICAgIH1cbiAgICBgXG4gIH0pLmpvaW4oJycpXG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgYm9keSBvZiB0aGUgcmVzdG9yZSBmdW5jdGlvblxuICpcbiAqIFJlc3RvcmF0aW9uIG9mIHRoZSByZWRhY3RlZCBvYmplY3QgaGFwcGVuc1xuICogYmFja3dhcmRzLCBpbiByZXZlcnNlIG9yZGVyIG9mIHJlZGFjdGlvbnMsXG4gKiBzbyB0aGF0IHJlcGVhdGVkIHJlZGFjdGlvbnMgb24gdGhlIHNhbWUgb2JqZWN0XG4gKiBwcm9wZXJ0eSBjYW4gYmUgZXZlbnR1YWxseSByb2xsZWQgYmFjayB0byB0aGVcbiAqIG9yaWdpbmFsIHZhbHVlLlxuICpcbiAqIFRoaXMgd2F5IGR5bmFtaWMgcmVkYWN0aW9ucyBhcmUgcmVzdG9yZWQgZmlyc3QsXG4gKiBzdGFydGluZyBmcm9tIHRoZSBsYXN0IG9uZSB3b3JraW5nIGJhY2t3YXJkcyBhbmRcbiAqIGZvbGxvd2VkIGJ5IHRoZSBzdGF0aWMgb25lcy5cbiAqXG4gKiBAcmV0dXJucyB7c3RyaW5nfSB0aGUgYm9keSBvZiB0aGUgcmVzdG9yZSBmdW5jdGlvblxuICovXG5mdW5jdGlvbiByZXN0b3JlVG1wbCAocmVzZXR0ZXJzLCBwYXRocywgaGFzV2lsZGNhcmRzKSB7XG4gIGNvbnN0IGR5bmFtaWNSZXNldCA9IGhhc1dpbGRjYXJkcyA9PT0gdHJ1ZSA/IGBcbiAgICBjb25zdCBrZXlzID0gT2JqZWN0LmtleXMoc2VjcmV0KVxuICAgIGNvbnN0IGxlbiA9IGtleXMubGVuZ3RoXG4gICAgZm9yICh2YXIgaSA9IGxlbiAtIDE7IGkgPj0gJHtwYXRocy5sZW5ndGh9OyBpLS0pIHtcbiAgICAgIGNvbnN0IGsgPSBrZXlzW2ldXG4gICAgICBjb25zdCBvID0gc2VjcmV0W2tdXG4gICAgICBpZiAobykge1xuICAgICAgICBpZiAoby5mbGF0ID09PSB0cnVlKSB0aGlzLmdyb3VwUmVzdG9yZShvKVxuICAgICAgICBlbHNlIHRoaXMubmVzdGVkUmVzdG9yZShvKVxuICAgICAgICBzZWNyZXRba10gPSBudWxsXG4gICAgICB9XG4gICAgfVxuICBgIDogJydcblxuICByZXR1cm4gYFxuICAgIGNvbnN0IHNlY3JldCA9IHRoaXMuc2VjcmV0XG4gICAgJHtkeW5hbWljUmVzZXR9XG4gICAgJHtyZXNldHRlcnN9XG4gICAgcmV0dXJuIG9cbiAgYFxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/restorer.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/rx.js":
/*!********************************************!*\
!*** ./node_modules/fast-redact/lib/rx.js ***!
\********************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = /[^.[\\]]+|\\[((?:.)*?)\\]/g\n\n/*\nRegular expression explanation:\n\nAlt 1: /[^.[\\]]+/ - Match one or more characters that are *not* a dot (.)\n opening square bracket ([) or closing square bracket (])\n\nAlt 2: /\\[((?:.)*?)\\]/ - If the char IS dot or square bracket, then create a capture\n group (which will be capture group $1) that matches anything\n within square brackets. Expansion is lazy so it will\n stop matching as soon as the first closing bracket is met `]`\n (rather than continuing to match until the final closing bracket).\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvcnguanMiLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3J4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5tb2R1bGUuZXhwb3J0cyA9IC9bXi5bXFxdXSt8XFxbKCg/Oi4pKj8pXFxdL2dcblxuLypcblJlZ3VsYXIgZXhwcmVzc2lvbiBleHBsYW5hdGlvbjpcblxuQWx0IDE6IC9bXi5bXFxdXSsvIC0gTWF0Y2ggb25lIG9yIG1vcmUgY2hhcmFjdGVycyB0aGF0IGFyZSAqbm90KiBhIGRvdCAoLilcbiAgICAgICAgICAgICAgICAgICAgb3BlbmluZyBzcXVhcmUgYnJhY2tldCAoWykgb3IgY2xvc2luZyBzcXVhcmUgYnJhY2tldCAoXSlcblxuQWx0IDI6IC9cXFsoKD86LikqPylcXF0vIC0gSWYgdGhlIGNoYXIgSVMgZG90IG9yIHNxdWFyZSBicmFja2V0LCB0aGVuIGNyZWF0ZSBhIGNhcHR1cmVcbiAgICAgICAgICAgICAgICAgICAgICAgICBncm91cCAod2hpY2ggd2lsbCBiZSBjYXB0dXJlIGdyb3VwICQxKSB0aGF0IG1hdGNoZXMgYW55dGhpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoaW4gc3F1YXJlIGJyYWNrZXRzLiBFeHBhbnNpb24gaXMgbGF6eSBzbyBpdCB3aWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgc3RvcCBtYXRjaGluZyBhcyBzb29uIGFzIHRoZSBmaXJzdCBjbG9zaW5nIGJyYWNrZXQgaXMgbWV0IGBdYFxuICAgICAgICAgICAgICAgICAgICAgICAgIChyYXRoZXIgdGhhbiBjb250aW51aW5nIHRvIG1hdGNoIHVudGlsIHRoZSBmaW5hbCBjbG9zaW5nIGJyYWNrZXQpLlxuKi9cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/rx.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/state.js":
/*!***********************************************!*\
!*** ./node_modules/fast-redact/lib/state.js ***!
\***********************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = state\n\nfunction state (o) {\n const {\n secret,\n censor,\n compileRestore,\n serialize,\n groupRedact,\n nestedRedact,\n wildcards,\n wcLen\n } = o\n const builder = [{ secret, censor, compileRestore }]\n if (serialize !== false) builder.push({ serialize })\n if (wcLen > 0) builder.push({ groupRedact, nestedRedact, wildcards, wcLen })\n return Object.assign(...builder)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvc3RhdGUuanMiLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVo7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0oscUJBQXFCLGdDQUFnQztBQUNyRCwwQ0FBMEMsV0FBVztBQUNyRCxnQ0FBZ0MsNkNBQTZDO0FBQzdFO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2Zhc3QtcmVkYWN0L2xpYi9zdGF0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSBzdGF0ZVxuXG5mdW5jdGlvbiBzdGF0ZSAobykge1xuICBjb25zdCB7XG4gICAgc2VjcmV0LFxuICAgIGNlbnNvcixcbiAgICBjb21waWxlUmVzdG9yZSxcbiAgICBzZXJpYWxpemUsXG4gICAgZ3JvdXBSZWRhY3QsXG4gICAgbmVzdGVkUmVkYWN0LFxuICAgIHdpbGRjYXJkcyxcbiAgICB3Y0xlblxuICB9ID0gb1xuICBjb25zdCBidWlsZGVyID0gW3sgc2VjcmV0LCBjZW5zb3IsIGNvbXBpbGVSZXN0b3JlIH1dXG4gIGlmIChzZXJpYWxpemUgIT09IGZhbHNlKSBidWlsZGVyLnB1c2goeyBzZXJpYWxpemUgfSlcbiAgaWYgKHdjTGVuID4gMCkgYnVpbGRlci5wdXNoKHsgZ3JvdXBSZWRhY3QsIG5lc3RlZFJlZGFjdCwgd2lsZGNhcmRzLCB3Y0xlbiB9KVxuICByZXR1cm4gT2JqZWN0LmFzc2lnbiguLi5idWlsZGVyKVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/state.js\n");
/***/ }),
/***/ "(action-browser)/./node_modules/fast-redact/lib/validator.js":
/*!***************************************************!*\
!*** ./node_modules/fast-redact/lib/validator.js ***!
\***************************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = validator\n\nfunction validator (opts = {}) {\n const {\n ERR_PATHS_MUST_BE_STRINGS = () => 'fast-redact - Paths must be (non-empty) strings',\n ERR_INVALID_PATH = (s) => `fast-redact Invalid path (${s})`\n } = opts\n\n return function validate ({ paths }) {\n paths.forEach((s) => {\n if (typeof s !== 'string') {\n throw Error(ERR_PATHS_MUST_BE_STRINGS())\n }\n try {\n if (//.test(s)) throw Error()\n const expr = (s[0] === '[' ? '' : '.') + s.replace(/^\\*/, '').replace(/\\.\\*/g, '.').replace(/\\[\\*\\]/g, '[]')\n if (/\\n|\\r|;/.test(expr)) throw Error()\n if (/\\/\\*/.test(expr)) throw Error()\n /* eslint-disable-next-line */\n Function(`\n 'use strict'\n const o = new Proxy({}, { get: () => o, set: () => { throw Error() } });\n const = null;\n o${expr}\n if ([o${expr}].length !== 1) throw Error()`)()\n } catch (e) {\n throw Error(ERR_INVALID_PATH(s))\n }\n })\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFjdGlvbi1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvdmFsaWRhdG9yLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaOztBQUVBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0EsNkRBQTZELEVBQUU7QUFDL0QsSUFBSTs7QUFFSiw4QkFBOEIsT0FBTztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQyxJQUFJLDJCQUEyQixpQkFBaUI7QUFDbEY7QUFDQSxlQUFlO0FBQ2Ysb0JBQW9CLEtBQUs7QUFDekIsUUFBUTtBQUNSO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3ZhbGlkYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSB2YWxpZGF0b3JcblxuZnVuY3Rpb24gdmFsaWRhdG9yIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIEVSUl9QQVRIU19NVVNUX0JFX1NUUklOR1MgPSAoKSA9PiAnZmFzdC1yZWRhY3QgLSBQYXRocyBtdXN0IGJlIChub24tZW1wdHkpIHN0cmluZ3MnLFxuICAgIEVSUl9JTlZBTElEX1BBVEggPSAocykgPT4gYGZhc3QtcmVkYWN0IOKAkyBJbnZhbGlkIHBhdGggKCR7c30pYFxuICB9ID0gb3B0c1xuXG4gIHJldHVybiBmdW5jdGlvbiB2YWxpZGF0ZSAoeyBwYXRocyB9KSB7XG4gICAgcGF0aHMuZm9yRWFjaCgocykgPT4ge1xuICAgICAgaWYgKHR5cGVvZiBzICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBFcnJvcihFUlJfUEFUSFNfTVVTVF9CRV9TVFJJTkdTKCkpXG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBpZiAoL+OAhy8udGVzdChzKSkgdGhyb3cgRXJyb3IoKVxuICAgICAgICBjb25zdCBleHByID0gKHNbMF0gPT09ICdbJyA/ICcnIDogJy4nKSArIHMucmVwbGFjZSgvXlxcKi8sICfjgIcnKS5yZXBsYWNlKC9cXC5cXCovZywgJy7jgIcnKS5yZXBsYWNlKC9cXFtcXCpcXF0vZywgJ1vjgIddJylcbiAgICAgICAgaWYgKC9cXG58XFxyfDsvLnRlc3QoZXhwcikpIHRocm93IEVycm9yKClcbiAgICAgICAgaWYgKC9cXC9cXCovLnRlc3QoZXhwcikpIHRocm93IEVycm9yKClcbiAgICAgICAgLyogZXNsaW50LWRpc2FibGUtbmV4dC1saW5lICovXG4gICAgICAgIEZ1bmN0aW9uKGBcbiAgICAgICAgICAgICd1c2Ugc3RyaWN0J1xuICAgICAgICAgICAgY29uc3QgbyA9IG5ldyBQcm94eSh7fSwgeyBnZXQ6ICgpID0+IG8sIHNldDogKCkgPT4geyB0aHJvdyBFcnJvcigpIH0gfSk7XG4gICAgICAgICAgICBjb25zdCDjgIcgPSBudWxsO1xuICAgICAgICAgICAgbyR7ZXhwcn1cbiAgICAgICAgICAgIGlmIChbbyR7ZXhwcn1dLmxlbmd0aCAhPT0gMSkgdGhyb3cgRXJyb3IoKWApKClcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoRVJSX0lOVkFMSURfUEFUSChzKSlcbiAgICAgIH1cbiAgICB9KVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(action-browser)/./node_modules/fast-redact/lib/validator.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/index.js":
/*!*******************************************!*\
!*** ./node_modules/fast-redact/index.js ***!
\*******************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst validator = __webpack_require__(/*! ./lib/validator */ \"(rsc)/./node_modules/fast-redact/lib/validator.js\")\nconst parse = __webpack_require__(/*! ./lib/parse */ \"(rsc)/./node_modules/fast-redact/lib/parse.js\")\nconst redactor = __webpack_require__(/*! ./lib/redactor */ \"(rsc)/./node_modules/fast-redact/lib/redactor.js\")\nconst restorer = __webpack_require__(/*! ./lib/restorer */ \"(rsc)/./node_modules/fast-redact/lib/restorer.js\")\nconst { groupRedact, nestedRedact } = __webpack_require__(/*! ./lib/modifiers */ \"(rsc)/./node_modules/fast-redact/lib/modifiers.js\")\nconst state = __webpack_require__(/*! ./lib/state */ \"(rsc)/./node_modules/fast-redact/lib/state.js\")\nconst rx = __webpack_require__(/*! ./lib/rx */ \"(rsc)/./node_modules/fast-redact/lib/rx.js\")\nconst validate = validator()\nconst noop = (o) => o\nnoop.restore = noop\n\nconst DEFAULT_CENSOR = '[REDACTED]'\nfastRedact.rx = rx\nfastRedact.validator = validator\n\nmodule.exports = fastRedact\n\nfunction fastRedact (opts = {}) {\n const paths = Array.from(new Set(opts.paths || []))\n const serialize = 'serialize' in opts ? (\n opts.serialize === false ? opts.serialize\n : (typeof opts.serialize === 'function' ? opts.serialize : JSON.stringify)\n ) : JSON.stringify\n const remove = opts.remove\n if (remove === true && serialize !== JSON.stringify) {\n throw Error('fast-redact remove option may only be set when serializer is JSON.stringify')\n }\n const censor = remove === true\n ? undefined\n : 'censor' in opts ? opts.censor : DEFAULT_CENSOR\n\n const isCensorFct = typeof censor === 'function'\n const censorFctTakesPath = isCensorFct && censor.length > 1\n\n if (paths.length === 0) return serialize || noop\n\n validate({ paths, serialize, censor })\n\n const { wildcards, wcLen, secret } = parse({ paths, censor })\n\n const compileRestore = restorer()\n const strict = 'strict' in opts ? opts.strict : true\n\n return redactor({ secret, wcLen, serialize, strict, isCensorFct, censorFctTakesPath }, state({\n secret,\n censor,\n compileRestore,\n serialize,\n groupRedact,\n nestedRedact,\n wildcards,\n wcLen\n }))\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQVk7O0FBRVosa0JBQWtCLG1CQUFPLENBQUMsMEVBQWlCO0FBQzNDLGNBQWMsbUJBQU8sQ0FBQyxrRUFBYTtBQUNuQyxpQkFBaUIsbUJBQU8sQ0FBQyx3RUFBZ0I7QUFDekMsaUJBQWlCLG1CQUFPLENBQUMsd0VBQWdCO0FBQ3pDLFFBQVEsNEJBQTRCLEVBQUUsbUJBQU8sQ0FBQywwRUFBaUI7QUFDL0QsY0FBYyxtQkFBTyxDQUFDLGtFQUFhO0FBQ25DLFdBQVcsbUJBQU8sQ0FBQyw0REFBVTtBQUM3QjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQSxhQUFhLDBCQUEwQjs7QUFFdkMsVUFBVSwyQkFBMkIsVUFBVSxlQUFlOztBQUU5RDtBQUNBOztBQUVBLG9CQUFvQixtRUFBbUU7QUFDdkY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbmNvbnN0IHZhbGlkYXRvciA9IHJlcXVpcmUoJy4vbGliL3ZhbGlkYXRvcicpXG5jb25zdCBwYXJzZSA9IHJlcXVpcmUoJy4vbGliL3BhcnNlJylcbmNvbnN0IHJlZGFjdG9yID0gcmVxdWlyZSgnLi9saWIvcmVkYWN0b3InKVxuY29uc3QgcmVzdG9yZXIgPSByZXF1aXJlKCcuL2xpYi9yZXN0b3JlcicpXG5jb25zdCB7IGdyb3VwUmVkYWN0LCBuZXN0ZWRSZWRhY3QgfSA9IHJlcXVpcmUoJy4vbGliL21vZGlmaWVycycpXG5jb25zdCBzdGF0ZSA9IHJlcXVpcmUoJy4vbGliL3N0YXRlJylcbmNvbnN0IHJ4ID0gcmVxdWlyZSgnLi9saWIvcngnKVxuY29uc3QgdmFsaWRhdGUgPSB2YWxpZGF0b3IoKVxuY29uc3Qgbm9vcCA9IChvKSA9PiBvXG5ub29wLnJlc3RvcmUgPSBub29wXG5cbmNvbnN0IERFRkFVTFRfQ0VOU09SID0gJ1tSRURBQ1RFRF0nXG5mYXN0UmVkYWN0LnJ4ID0gcnhcbmZhc3RSZWRhY3QudmFsaWRhdG9yID0gdmFsaWRhdG9yXG5cbm1vZHVsZS5leHBvcnRzID0gZmFzdFJlZGFjdFxuXG5mdW5jdGlvbiBmYXN0UmVkYWN0IChvcHRzID0ge30pIHtcbiAgY29uc3QgcGF0aHMgPSBBcnJheS5mcm9tKG5ldyBTZXQob3B0cy5wYXRocyB8fCBbXSkpXG4gIGNvbnN0IHNlcmlhbGl6ZSA9ICdzZXJpYWxpemUnIGluIG9wdHMgPyAoXG4gICAgb3B0cy5zZXJpYWxpemUgPT09IGZhbHNlID8gb3B0cy5zZXJpYWxpemVcbiAgICAgIDogKHR5cGVvZiBvcHRzLnNlcmlhbGl6ZSA9PT0gJ2Z1bmN0aW9uJyA/IG9wdHMuc2VyaWFsaXplIDogSlNPTi5zdHJpbmdpZnkpXG4gICkgOiBKU09OLnN0cmluZ2lmeVxuICBjb25zdCByZW1vdmUgPSBvcHRzLnJlbW92ZVxuICBpZiAocmVtb3ZlID09PSB0cnVlICYmIHNlcmlhbGl6ZSAhPT0gSlNPTi5zdHJpbmdpZnkpIHtcbiAgICB0aHJvdyBFcnJvcignZmFzdC1yZWRhY3Qg4oCTIHJlbW92ZSBvcHRpb24gbWF5IG9ubHkgYmUgc2V0IHdoZW4gc2VyaWFsaXplciBpcyBKU09OLnN0cmluZ2lmeScpXG4gIH1cbiAgY29uc3QgY2Vuc29yID0gcmVtb3ZlID09PSB0cnVlXG4gICAgPyB1bmRlZmluZWRcbiAgICA6ICdjZW5zb3InIGluIG9wdHMgPyBvcHRzLmNlbnNvciA6IERFRkFVTFRfQ0VOU09SXG5cbiAgY29uc3QgaXNDZW5zb3JGY3QgPSB0eXBlb2YgY2Vuc29yID09PSAnZnVuY3Rpb24nXG4gIGNvbnN0IGNlbnNvckZjdFRha2VzUGF0aCA9IGlzQ2Vuc29yRmN0ICYmIGNlbnNvci5sZW5ndGggPiAxXG5cbiAgaWYgKHBhdGhzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHNlcmlhbGl6ZSB8fCBub29wXG5cbiAgdmFsaWRhdGUoeyBwYXRocywgc2VyaWFsaXplLCBjZW5zb3IgfSlcblxuICBjb25zdCB7IHdpbGRjYXJkcywgd2NMZW4sIHNlY3JldCB9ID0gcGFyc2UoeyBwYXRocywgY2Vuc29yIH0pXG5cbiAgY29uc3QgY29tcGlsZVJlc3RvcmUgPSByZXN0b3JlcigpXG4gIGNvbnN0IHN0cmljdCA9ICdzdHJpY3QnIGluIG9wdHMgPyBvcHRzLnN0cmljdCA6IHRydWVcblxuICByZXR1cm4gcmVkYWN0b3IoeyBzZWNyZXQsIHdjTGVuLCBzZXJpYWxpemUsIHN0cmljdCwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCB9LCBzdGF0ZSh7XG4gICAgc2VjcmV0LFxuICAgIGNlbnNvcixcbiAgICBjb21waWxlUmVzdG9yZSxcbiAgICBzZXJpYWxpemUsXG4gICAgZ3JvdXBSZWRhY3QsXG4gICAgbmVzdGVkUmVkYWN0LFxuICAgIHdpbGRjYXJkcyxcbiAgICB3Y0xlblxuICB9KSlcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/index.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/modifiers.js":
/*!***************************************************!*\
!*** ./node_modules/fast-redact/lib/modifiers.js ***!
\***************************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = {\n groupRedact,\n groupRestore,\n nestedRedact,\n nestedRestore\n}\n\nfunction groupRestore ({ keys, values, target }) {\n if (target == null || typeof target === 'string') return\n const length = keys.length\n for (var i = 0; i < length; i++) {\n const k = keys[i]\n target[k] = values[i]\n }\n}\n\nfunction groupRedact (o, path, censor, isCensorFct, censorFctTakesPath) {\n const target = get(o, path)\n if (target == null || typeof target === 'string') return { keys: null, values: null, target, flat: true }\n const keys = Object.keys(target)\n const keysLength = keys.length\n const pathLength = path.length\n const pathWithKey = censorFctTakesPath ? [...path] : undefined\n const values = new Array(keysLength)\n\n for (var i = 0; i < keysLength; i++) {\n const key = keys[i]\n values[i] = target[key]\n\n if (censorFctTakesPath) {\n pathWithKey[pathLength] = key\n target[key] = censor(target[key], pathWithKey)\n } else if (isCensorFct) {\n target[key] = censor(target[key])\n } else {\n target[key] = censor\n }\n }\n return { keys, values, target, flat: true }\n}\n\n/**\n * @param {RestoreInstruction[]} instructions a set of instructions for restoring values to objects\n */\nfunction nestedRestore (instructions) {\n for (let i = 0; i < instructions.length; i++) {\n const { target, path, value } = instructions[i]\n let current = target\n for (let i = path.length - 1; i > 0; i--) {\n current = current[path[i]]\n }\n current[path[0]] = value\n }\n}\n\nfunction nestedRedact (store, o, path, ns, censor, isCensorFct, censorFctTakesPath) {\n const target = get(o, path)\n if (target == null) return\n const keys = Object.keys(target)\n const keysLength = keys.length\n for (var i = 0; i < keysLength; i++) {\n const key = keys[i]\n specialSet(store, target, key, path, ns, censor, isCensorFct, censorFctTakesPath)\n }\n return store\n}\n\nfunction has (obj, prop) {\n return obj !== undefined && obj !== null\n ? ('hasOwn' in Object ? Object.hasOwn(obj, prop) : Object.prototype.hasOwnProperty.call(obj, prop))\n : false\n}\n\nfunction specialSet (store, o, k, path, afterPath, censor, isCensorFct, censorFctTakesPath) {\n const afterPathLen = afterPath.length\n const lastPathIndex = afterPathLen - 1\n const originalKey = k\n var i = -1\n var n\n var nv\n var ov\n var oov = null\n var wc = null\n var kIsWc\n var wcov\n var consecutive = false\n var level = 0\n // need to track depth of the `redactPath` tree\n var depth = 0\n var redactPathCurrent = tree()\n ov = n = o[k]\n if (typeof n !== 'object') return\n while (n != null && ++i < afterPathLen) {\n depth += 1\n k = afterPath[i]\n oov = ov\n if (k !== '*' && !wc && !(typeof n === 'object' && k in n)) {\n break\n }\n if (k === '*') {\n if (wc === '*') {\n consecutive = true\n }\n wc = k\n if (i !== lastPathIndex) {\n continue\n }\n }\n if (wc) {\n const wcKeys = Object.keys(n)\n for (var j = 0; j < wcKeys.length; j++) {\n const wck = wcKeys[j]\n wcov = n[wck]\n kIsWc = k === '*'\n if (consecutive) {\n redactPathCurrent = node(redactPathCurrent, wck, depth)\n level = i\n ov = iterateNthLevel(wcov, level - 1, k, path, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, o[originalKey], depth + 1)\n } else {\n if (kIsWc || (typeof wcov === 'object' && wcov !== null && k in wcov)) {\n if (kIsWc) {\n ov = wcov\n } else {\n ov = wcov[k]\n }\n nv = (i !== lastPathIndex)\n ? ov\n : (isCensorFct\n ? (censorFctTakesPath ? censor(ov, [...path, originalKey, ...afterPath]) : censor(ov))\n : censor)\n if (kIsWc) {\n const rv = restoreInstr(node(redactPathCurrent, wck, depth), ov, o[originalKey])\n store.push(rv)\n n[wck] = nv\n } else {\n if (wcov[k] === nv) {\n // pass\n } else if ((nv === undefined && censor !== undefined) || (has(wcov, k) && nv === ov)) {\n redactPathCurrent = node(redactPathCurrent, wck, depth)\n } else {\n redactPathCurrent = node(redactPathCurrent, wck, depth)\n const rv = restoreInstr(node(redactPathCurrent, k, depth + 1), ov, o[originalKey])\n store.push(rv)\n wcov[k] = nv\n }\n }\n }\n }\n }\n wc = null\n } else {\n ov = n[k]\n redactPathCurrent = node(redactPathCurrent, k, depth)\n nv = (i !== lastPathIndex)\n ? ov\n : (isCensorFct\n ? (censorFctTakesPath ? censor(ov, [...path, originalKey, ...afterPath]) : censor(ov))\n : censor)\n if ((has(n, k) && nv === ov) || (nv === undefined && censor !== undefined)) {\n // pass\n } else {\n const rv = restoreInstr(redactPathCurrent, ov, o[originalKey])\n store.push(rv)\n n[k] = nv\n }\n n = n[k]\n }\n if (typeof n !== 'object') break\n // prevent circular structure, see https://github.com/pinojs/pino/issues/1513\n if (ov === oov || typeof ov === 'undefined') {\n // pass\n }\n }\n}\n\nfunction get (o, p) {\n var i = -1\n var l = p.length\n var n = o\n while (n != null && ++i < l) {\n n = n[p[i]]\n }\n return n\n}\n\nfunction iterateNthLevel (wcov, level, k, path, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, parent, depth) {\n if (level === 0) {\n if (kIsWc || (typeof wcov === 'object' && wcov !== null && k in wcov)) {\n if (kIsWc) {\n ov = wcov\n } else {\n ov = wcov[k]\n }\n nv = (i !== lastPathIndex)\n ? ov\n : (isCensorFct\n ? (censorFctTakesPath ? censor(ov, [...path, originalKey, ...afterPath]) : censor(ov))\n : censor)\n if (kIsWc) {\n const rv = restoreInstr(redactPathCurrent, ov, parent)\n store.push(rv)\n n[wck] = nv\n } else {\n if (wcov[k] === nv) {\n // pass\n } else if ((nv === undefined && censor !== undefined) || (has(wcov, k) && nv === ov)) {\n // pass\n } else {\n const rv = restoreInstr(node(redactPathCurrent, k, depth + 1), ov, parent)\n store.push(rv)\n wcov[k] = nv\n }\n }\n }\n }\n for (const key in wcov) {\n if (typeof wcov[key] === 'object') {\n redactPathCurrent = node(redactPathCurrent, key, depth)\n iterateNthLevel(wcov[key], level - 1, k, path, afterPath, censor, isCensorFct, censorFctTakesPath, originalKey, n, nv, ov, kIsWc, wck, i, lastPathIndex, redactPathCurrent, store, parent, depth + 1)\n }\n }\n}\n\n/**\n * @typedef {object} TreeNode\n * @prop {TreeNode} [parent] reference to the parent of this node in the tree, or `null` if there is no parent\n * @prop {string} key the key that this node represents (key here being part of the path being redacted\n * @prop {TreeNode[]} children the child nodes of this node\n * @prop {number} depth the depth of this node in the tree\n */\n\n/**\n * instantiate a new, empty tree\n * @returns {TreeNode}\n */\nfunction tree () {\n return { parent: null, key: null, children: [], depth: 0 }\n}\n\n/**\n * creates a new node in the tree, attaching it as a child of the provided parent node\n * if the specified depth matches the parent depth, adds the new node as a _sibling_ of the parent instead\n * @param {TreeNode} parent the parent node to add a new node to (if the parent depth matches the provided `depth` value, will instead add as a sibling of this\n * @param {string} key the key that the new node represents (key here being part of the path being redacted)\n * @param {number} depth the depth of the new node in the tree - used to determing whether to add the new node as a child or sibling of the provided `parent` node\n * @returns {TreeNode} a reference to the newly created node in the tree\n */\nfunction node (parent, key, depth) {\n if (parent.depth === depth) {\n return node(parent.parent, key, depth)\n }\n\n var child = {\n parent,\n key,\n depth,\n children: []\n }\n\n parent.children.push(child)\n\n return child\n}\n\n/**\n * @typedef {object} RestoreInstruction\n * @prop {string[]} path a reverse-order path that can be used to find the correct insertion point to restore a `value` for the given `parent` object\n * @prop {*} value the value to restore\n * @prop {object} target the object to restore the `value` in\n */\n\n/**\n * create a restore instruction for the given redactPath node\n * generates a path in reverse order by walking up the redactPath tree\n * @param {TreeNode} node a tree node that should be at the bottom of the redact path (i.e. have no children) - this will be used to walk up the redact path tree to construct the path needed to restore\n * @param {*} value the value to restore\n * @param {object} target a reference to the parent object to apply the restore instruction to\n * @returns {RestoreInstruction} an instruction used to restore a nested value for a specific object\n */\nfunction restoreInstr (node, value, target) {\n let current = node\n const path = []\n do {\n path.push(current.key)\n current = current.parent\n } while (current.parent != null)\n\n return { path, value, target }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL21vZGlmaWVycy5qcyIsIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEseUJBQXlCLHNCQUFzQjtBQUMvQztBQUNBO0FBQ0Esa0JBQWtCLFlBQVk7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLDZEQUE2RDtBQUM3RDtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLGtCQUFrQixnQkFBZ0I7QUFDbEM7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYOztBQUVBO0FBQ0EsV0FBVyxzQkFBc0I7QUFDakM7QUFDQTtBQUNBLGtCQUFrQix5QkFBeUI7QUFDM0MsWUFBWSxzQkFBc0I7QUFDbEM7QUFDQSxrQ0FBa0MsT0FBTztBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0IsZ0JBQWdCO0FBQ2xDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixtQkFBbUI7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBLGdCQUFnQjtBQUNoQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxhQUFhLFFBQVE7QUFDckIsVUFBVSxVQUFVO0FBQ3BCLFVBQVUsUUFBUTtBQUNsQixVQUFVLFlBQVk7QUFDdEIsVUFBVSxRQUFRO0FBQ2xCOztBQUVBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBLFdBQVc7QUFDWDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxZQUFZLFVBQVU7QUFDdEIsWUFBWSxRQUFRO0FBQ3BCLFlBQVksUUFBUTtBQUNwQixjQUFjLFVBQVU7QUFDeEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTs7QUFFQTtBQUNBLGFBQWEsUUFBUTtBQUNyQixVQUFVLFVBQVU7QUFDcEIsVUFBVSxHQUFHO0FBQ2IsVUFBVSxRQUFRO0FBQ2xCOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsVUFBVTtBQUNyQixXQUFXLEdBQUc7QUFDZCxXQUFXLFFBQVE7QUFDbkIsYUFBYSxvQkFBb0I7QUFDakM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJOztBQUVKLFdBQVc7QUFDWCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL21vZGlmaWVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSB7XG4gIGdyb3VwUmVkYWN0LFxuICBncm91cFJlc3RvcmUsXG4gIG5lc3RlZFJlZGFjdCxcbiAgbmVzdGVkUmVzdG9yZVxufVxuXG5mdW5jdGlvbiBncm91cFJlc3RvcmUgKHsga2V5cywgdmFsdWVzLCB0YXJnZXQgfSkge1xuICBpZiAodGFyZ2V0ID09IG51bGwgfHwgdHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycpIHJldHVyblxuICBjb25zdCBsZW5ndGggPSBrZXlzLmxlbmd0aFxuICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgayA9IGtleXNbaV1cbiAgICB0YXJnZXRba10gPSB2YWx1ZXNbaV1cbiAgfVxufVxuXG5mdW5jdGlvbiBncm91cFJlZGFjdCAobywgcGF0aCwgY2Vuc29yLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoKSB7XG4gIGNvbnN0IHRhcmdldCA9IGdldChvLCBwYXRoKVxuICBpZiAodGFyZ2V0ID09IG51bGwgfHwgdHlwZW9mIHRhcmdldCA9PT0gJ3N0cmluZycpIHJldHVybiB7IGtleXM6IG51bGwsIHZhbHVlczogbnVsbCwgdGFyZ2V0LCBmbGF0OiB0cnVlIH1cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRhcmdldClcbiAgY29uc3Qga2V5c0xlbmd0aCA9IGtleXMubGVuZ3RoXG4gIGNvbnN0IHBhdGhMZW5ndGggPSBwYXRoLmxlbmd0aFxuICBjb25zdCBwYXRoV2l0aEtleSA9IGNlbnNvckZjdFRha2VzUGF0aCA/IFsuLi5wYXRoXSA6IHVuZGVmaW5lZFxuICBjb25zdCB2YWx1ZXMgPSBuZXcgQXJyYXkoa2V5c0xlbmd0aClcblxuICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXNMZW5ndGg7IGkrKykge1xuICAgIGNvbnN0IGtleSA9IGtleXNbaV1cbiAgICB2YWx1ZXNbaV0gPSB0YXJnZXRba2V5XVxuXG4gICAgaWYgKGNlbnNvckZjdFRha2VzUGF0aCkge1xuICAgICAgcGF0aFdpdGhLZXlbcGF0aExlbmd0aF0gPSBrZXlcbiAgICAgIHRhcmdldFtrZXldID0gY2Vuc29yKHRhcmdldFtrZXldLCBwYXRoV2l0aEtleSlcbiAgICB9IGVsc2UgaWYgKGlzQ2Vuc29yRmN0KSB7XG4gICAgICB0YXJnZXRba2V5XSA9IGNlbnNvcih0YXJnZXRba2V5XSlcbiAgICB9IGVsc2Uge1xuICAgICAgdGFyZ2V0W2tleV0gPSBjZW5zb3JcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHsga2V5cywgdmFsdWVzLCB0YXJnZXQsIGZsYXQ6IHRydWUgfVxufVxuXG4vKipcbiAqIEBwYXJhbSB7UmVzdG9yZUluc3RydWN0aW9uW119IGluc3RydWN0aW9ucyBhIHNldCBvZiBpbnN0cnVjdGlvbnMgZm9yIHJlc3RvcmluZyB2YWx1ZXMgdG8gb2JqZWN0c1xuICovXG5mdW5jdGlvbiBuZXN0ZWRSZXN0b3JlIChpbnN0cnVjdGlvbnMpIHtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBpbnN0cnVjdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCB7IHRhcmdldCwgcGF0aCwgdmFsdWUgfSA9IGluc3RydWN0aW9uc1tpXVxuICAgIGxldCBjdXJyZW50ID0gdGFyZ2V0XG4gICAgZm9yIChsZXQgaSA9IHBhdGgubGVuZ3RoIC0gMTsgaSA+IDA7IGktLSkge1xuICAgICAgY3VycmVudCA9IGN1cnJlbnRbcGF0aFtpXV1cbiAgICB9XG4gICAgY3VycmVudFtwYXRoWzBdXSA9IHZhbHVlXG4gIH1cbn1cblxuZnVuY3Rpb24gbmVzdGVkUmVkYWN0IChzdG9yZSwgbywgcGF0aCwgbnMsIGNlbnNvciwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCkge1xuICBjb25zdCB0YXJnZXQgPSBnZXQobywgcGF0aClcbiAgaWYgKHRhcmdldCA9PSBudWxsKSByZXR1cm5cbiAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHRhcmdldClcbiAgY29uc3Qga2V5c0xlbmd0aCA9IGtleXMubGVuZ3RoXG4gIGZvciAodmFyIGkgPSAwOyBpIDwga2V5c0xlbmd0aDsgaSsrKSB7XG4gICAgY29uc3Qga2V5ID0ga2V5c1tpXVxuICAgIHNwZWNpYWxTZXQoc3RvcmUsIHRhcmdldCwga2V5LCBwYXRoLCBucywgY2Vuc29yLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoKVxuICB9XG4gIHJldHVybiBzdG9yZVxufVxuXG5mdW5jdGlvbiBoYXMgKG9iaiwgcHJvcCkge1xuICByZXR1cm4gb2JqICE9PSB1bmRlZmluZWQgJiYgb2JqICE9PSBudWxsXG4gICAgPyAoJ2hhc093bicgaW4gT2JqZWN0ID8gT2JqZWN0Lmhhc093bihvYmosIHByb3ApIDogT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpXG4gICAgOiBmYWxzZVxufVxuXG5mdW5jdGlvbiBzcGVjaWFsU2V0IChzdG9yZSwgbywgaywgcGF0aCwgYWZ0ZXJQYXRoLCBjZW5zb3IsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgpIHtcbiAgY29uc3QgYWZ0ZXJQYXRoTGVuID0gYWZ0ZXJQYXRoLmxlbmd0aFxuICBjb25zdCBsYXN0UGF0aEluZGV4ID0gYWZ0ZXJQYXRoTGVuIC0gMVxuICBjb25zdCBvcmlnaW5hbEtleSA9IGtcbiAgdmFyIGkgPSAtMVxuICB2YXIgblxuICB2YXIgbnZcbiAgdmFyIG92XG4gIHZhciBvb3YgPSBudWxsXG4gIHZhciB3YyA9IG51bGxcbiAgdmFyIGtJc1djXG4gIHZhciB3Y292XG4gIHZhciBjb25zZWN1dGl2ZSA9IGZhbHNlXG4gIHZhciBsZXZlbCA9IDBcbiAgLy8gbmVlZCB0byB0cmFjayBkZXB0aCBvZiB0aGUgYHJlZGFjdFBhdGhgIHRyZWVcbiAgdmFyIGRlcHRoID0gMFxuICB2YXIgcmVkYWN0UGF0aEN1cnJlbnQgPSB0cmVlKClcbiAgb3YgPSBuID0gb1trXVxuICBpZiAodHlwZW9mIG4gIT09ICdvYmplY3QnKSByZXR1cm5cbiAgd2hpbGUgKG4gIT0gbnVsbCAmJiArK2kgPCBhZnRlclBhdGhMZW4pIHtcbiAgICBkZXB0aCArPSAxXG4gICAgayA9IGFmdGVyUGF0aFtpXVxuICAgIG9vdiA9IG92XG4gICAgaWYgKGsgIT09ICcqJyAmJiAhd2MgJiYgISh0eXBlb2YgbiA9PT0gJ29iamVjdCcgJiYgayBpbiBuKSkge1xuICAgICAgYnJlYWtcbiAgICB9XG4gICAgaWYgKGsgPT09ICcqJykge1xuICAgICAgaWYgKHdjID09PSAnKicpIHtcbiAgICAgICAgY29uc2VjdXRpdmUgPSB0cnVlXG4gICAgICB9XG4gICAgICB3YyA9IGtcbiAgICAgIGlmIChpICE9PSBsYXN0UGF0aEluZGV4KSB7XG4gICAgICAgIGNvbnRpbnVlXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh3Yykge1xuICAgICAgY29uc3Qgd2NLZXlzID0gT2JqZWN0LmtleXMobilcbiAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgd2NLZXlzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgIGNvbnN0IHdjayA9IHdjS2V5c1tqXVxuICAgICAgICB3Y292ID0gblt3Y2tdXG4gICAgICAgIGtJc1djID0gayA9PT0gJyonXG4gICAgICAgIGlmIChjb25zZWN1dGl2ZSkge1xuICAgICAgICAgIHJlZGFjdFBhdGhDdXJyZW50ID0gbm9kZShyZWRhY3RQYXRoQ3VycmVudCwgd2NrLCBkZXB0aClcbiAgICAgICAgICBsZXZlbCA9IGlcbiAgICAgICAgICBvdiA9IGl0ZXJhdGVOdGhMZXZlbCh3Y292LCBsZXZlbCAtIDEsIGssIHBhdGgsIGFmdGVyUGF0aCwgY2Vuc29yLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoLCBvcmlnaW5hbEtleSwgbiwgbnYsIG92LCBrSXNXYywgd2NrLCBpLCBsYXN0UGF0aEluZGV4LCByZWRhY3RQYXRoQ3VycmVudCwgc3RvcmUsIG9bb3JpZ2luYWxLZXldLCBkZXB0aCArIDEpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKGtJc1djIHx8ICh0eXBlb2Ygd2NvdiA9PT0gJ29iamVjdCcgJiYgd2NvdiAhPT0gbnVsbCAmJiBrIGluIHdjb3YpKSB7XG4gICAgICAgICAgICBpZiAoa0lzV2MpIHtcbiAgICAgICAgICAgICAgb3YgPSB3Y292XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBvdiA9IHdjb3Zba11cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG52ID0gKGkgIT09IGxhc3RQYXRoSW5kZXgpXG4gICAgICAgICAgICAgID8gb3ZcbiAgICAgICAgICAgICAgOiAoaXNDZW5zb3JGY3RcbiAgICAgICAgICAgICAgICA/IChjZW5zb3JGY3RUYWtlc1BhdGggPyBjZW5zb3Iob3YsIFsuLi5wYXRoLCBvcmlnaW5hbEtleSwgLi4uYWZ0ZXJQYXRoXSkgOiBjZW5zb3Iob3YpKVxuICAgICAgICAgICAgICAgIDogY2Vuc29yKVxuICAgICAgICAgICAgaWYgKGtJc1djKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHJ2ID0gcmVzdG9yZUluc3RyKG5vZGUocmVkYWN0UGF0aEN1cnJlbnQsIHdjaywgZGVwdGgpLCBvdiwgb1tvcmlnaW5hbEtleV0pXG4gICAgICAgICAgICAgIHN0b3JlLnB1c2gocnYpXG4gICAgICAgICAgICAgIG5bd2NrXSA9IG52XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpZiAod2NvdltrXSA9PT0gbnYpIHtcbiAgICAgICAgICAgICAgICAvLyBwYXNzXG4gICAgICAgICAgICAgIH0gZWxzZSBpZiAoKG52ID09PSB1bmRlZmluZWQgJiYgY2Vuc29yICE9PSB1bmRlZmluZWQpIHx8IChoYXMod2NvdiwgaykgJiYgbnYgPT09IG92KSkge1xuICAgICAgICAgICAgICAgIHJlZGFjdFBhdGhDdXJyZW50ID0gbm9kZShyZWRhY3RQYXRoQ3VycmVudCwgd2NrLCBkZXB0aClcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZWRhY3RQYXRoQ3VycmVudCA9IG5vZGUocmVkYWN0UGF0aEN1cnJlbnQsIHdjaywgZGVwdGgpXG4gICAgICAgICAgICAgICAgY29uc3QgcnYgPSByZXN0b3JlSW5zdHIobm9kZShyZWRhY3RQYXRoQ3VycmVudCwgaywgZGVwdGggKyAxKSwgb3YsIG9bb3JpZ2luYWxLZXldKVxuICAgICAgICAgICAgICAgIHN0b3JlLnB1c2gocnYpXG4gICAgICAgICAgICAgICAgd2NvdltrXSA9IG52XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHdjID0gbnVsbFxuICAgIH0gZWxzZSB7XG4gICAgICBvdiA9IG5ba11cbiAgICAgIHJlZGFjdFBhdGhDdXJyZW50ID0gbm9kZShyZWRhY3RQYXRoQ3VycmVudCwgaywgZGVwdGgpXG4gICAgICBudiA9IChpICE9PSBsYXN0UGF0aEluZGV4KVxuICAgICAgICA/IG92XG4gICAgICAgIDogKGlzQ2Vuc29yRmN0XG4gICAgICAgICAgPyAoY2Vuc29yRmN0VGFrZXNQYXRoID8gY2Vuc29yKG92LCBbLi4ucGF0aCwgb3JpZ2luYWxLZXksIC4uLmFmdGVyUGF0aF0pIDogY2Vuc29yKG92KSlcbiAgICAgICAgICA6IGNlbnNvcilcbiAgICAgIGlmICgoaGFzKG4sIGspICYmIG52ID09PSBvdikgfHwgKG52ID09PSB1bmRlZmluZWQgJiYgY2Vuc29yICE9PSB1bmRlZmluZWQpKSB7XG4gICAgICAgIC8vIHBhc3NcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHJ2ID0gcmVzdG9yZUluc3RyKHJlZGFjdFBhdGhDdXJyZW50LCBvdiwgb1tvcmlnaW5hbEtleV0pXG4gICAgICAgIHN0b3JlLnB1c2gocnYpXG4gICAgICAgIG5ba10gPSBudlxuICAgICAgfVxuICAgICAgbiA9IG5ba11cbiAgICB9XG4gICAgaWYgKHR5cGVvZiBuICE9PSAnb2JqZWN0JykgYnJlYWtcbiAgICAvLyBwcmV2ZW50IGNpcmN1bGFyIHN0cnVjdHVyZSwgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9waW5vanMvcGluby9pc3N1ZXMvMTUxM1xuICAgIGlmIChvdiA9PT0gb292IHx8IHR5cGVvZiBvdiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIC8vIHBhc3NcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2V0IChvLCBwKSB7XG4gIHZhciBpID0gLTFcbiAgdmFyIGwgPSBwLmxlbmd0aFxuICB2YXIgbiA9IG9cbiAgd2hpbGUgKG4gIT0gbnVsbCAmJiArK2kgPCBsKSB7XG4gICAgbiA9IG5bcFtpXV1cbiAgfVxuICByZXR1cm4gblxufVxuXG5mdW5jdGlvbiBpdGVyYXRlTnRoTGV2ZWwgKHdjb3YsIGxldmVsLCBrLCBwYXRoLCBhZnRlclBhdGgsIGNlbnNvciwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCwgb3JpZ2luYWxLZXksIG4sIG52LCBvdiwga0lzV2MsIHdjaywgaSwgbGFzdFBhdGhJbmRleCwgcmVkYWN0UGF0aEN1cnJlbnQsIHN0b3JlLCBwYXJlbnQsIGRlcHRoKSB7XG4gIGlmIChsZXZlbCA9PT0gMCkge1xuICAgIGlmIChrSXNXYyB8fCAodHlwZW9mIHdjb3YgPT09ICdvYmplY3QnICYmIHdjb3YgIT09IG51bGwgJiYgayBpbiB3Y292KSkge1xuICAgICAgaWYgKGtJc1djKSB7XG4gICAgICAgIG92ID0gd2NvdlxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgb3YgPSB3Y292W2tdXG4gICAgICB9XG4gICAgICBudiA9IChpICE9PSBsYXN0UGF0aEluZGV4KVxuICAgICAgICA/IG92XG4gICAgICAgIDogKGlzQ2Vuc29yRmN0XG4gICAgICAgICAgPyAoY2Vuc29yRmN0VGFrZXNQYXRoID8gY2Vuc29yKG92LCBbLi4ucGF0aCwgb3JpZ2luYWxLZXksIC4uLmFmdGVyUGF0aF0pIDogY2Vuc29yKG92KSlcbiAgICAgICAgICA6IGNlbnNvcilcbiAgICAgIGlmIChrSXNXYykge1xuICAgICAgICBjb25zdCBydiA9IHJlc3RvcmVJbnN0cihyZWRhY3RQYXRoQ3VycmVudCwgb3YsIHBhcmVudClcbiAgICAgICAgc3RvcmUucHVzaChydilcbiAgICAgICAgblt3Y2tdID0gbnZcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh3Y292W2tdID09PSBudikge1xuICAgICAgICAgIC8vIHBhc3NcbiAgICAgICAgfSBlbHNlIGlmICgobnYgPT09IHVuZGVmaW5lZCAmJiBjZW5zb3IgIT09IHVuZGVmaW5lZCkgfHwgKGhhcyh3Y292LCBrKSAmJiBudiA9PT0gb3YpKSB7XG4gICAgICAgICAgLy8gcGFzc1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJ2ID0gcmVzdG9yZUluc3RyKG5vZGUocmVkYWN0UGF0aEN1cnJlbnQsIGssIGRlcHRoICsgMSksIG92LCBwYXJlbnQpXG4gICAgICAgICAgc3RvcmUucHVzaChydilcbiAgICAgICAgICB3Y292W2tdID0gbnZcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IGtleSBpbiB3Y292KSB7XG4gICAgaWYgKHR5cGVvZiB3Y292W2tleV0gPT09ICdvYmplY3QnKSB7XG4gICAgICByZWRhY3RQYXRoQ3VycmVudCA9IG5vZGUocmVkYWN0UGF0aEN1cnJlbnQsIGtleSwgZGVwdGgpXG4gICAgICBpdGVyYXRlTnRoTGV2ZWwod2NvdltrZXldLCBsZXZlbCAtIDEsIGssIHBhdGgsIGFmdGVyUGF0aCwgY2Vuc29yLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoLCBvcmlnaW5hbEtleSwgbiwgbnYsIG92LCBrSXNXYywgd2NrLCBpLCBsYXN0UGF0aEluZGV4LCByZWRhY3RQYXRoQ3VycmVudCwgc3RvcmUsIHBhcmVudCwgZGVwdGggKyAxKVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtvYmplY3R9IFRyZWVOb2RlXG4gKiBAcHJvcCB7VHJlZU5vZGV9IFtwYXJlbnRdIHJlZmVyZW5jZSB0byB0aGUgcGFyZW50IG9mIHRoaXMgbm9kZSBpbiB0aGUgdHJlZSwgb3IgYG51bGxgIGlmIHRoZXJlIGlzIG5vIHBhcmVudFxuICogQHByb3Age3N0cmluZ30ga2V5IHRoZSBrZXkgdGhhdCB0aGlzIG5vZGUgcmVwcmVzZW50cyAoa2V5IGhlcmUgYmVpbmcgcGFydCBvZiB0aGUgcGF0aCBiZWluZyByZWRhY3RlZFxuICogQHByb3Age1RyZWVOb2RlW119IGNoaWxkcmVuIHRoZSBjaGlsZCBub2RlcyBvZiB0aGlzIG5vZGVcbiAqIEBwcm9wIHtudW1iZXJ9IGRlcHRoIHRoZSBkZXB0aCBvZiB0aGlzIG5vZGUgaW4gdGhlIHRyZWVcbiAqL1xuXG4vKipcbiAqIGluc3RhbnRpYXRlIGEgbmV3LCBlbXB0eSB0cmVlXG4gKiBAcmV0dXJucyB7VHJlZU5vZGV9XG4gKi9cbmZ1bmN0aW9uIHRyZWUgKCkge1xuICByZXR1cm4geyBwYXJlbnQ6IG51bGwsIGtleTogbnVsbCwgY2hpbGRyZW46IFtdLCBkZXB0aDogMCB9XG59XG5cbi8qKlxuICogY3JlYXRlcyBhIG5ldyBub2RlIGluIHRoZSB0cmVlLCBhdHRhY2hpbmcgaXQgYXMgYSBjaGlsZCBvZiB0aGUgcHJvdmlkZWQgcGFyZW50IG5vZGVcbiAqIGlmIHRoZSBzcGVjaWZpZWQgZGVwdGggbWF0Y2hlcyB0aGUgcGFyZW50IGRlcHRoLCBhZGRzIHRoZSBuZXcgbm9kZSBhcyBhIF9zaWJsaW5nXyBvZiB0aGUgcGFyZW50IGluc3RlYWRcbiAgKiBAcGFyYW0ge1RyZWVOb2RlfSBwYXJlbnQgdGhlIHBhcmVudCBub2RlIHRvIGFkZCBhIG5ldyBub2RlIHRvIChpZiB0aGUgcGFyZW50IGRlcHRoIG1hdGNoZXMgdGhlIHByb3ZpZGVkIGBkZXB0aGAgdmFsdWUsIHdpbGwgaW5zdGVhZCBhZGQgYXMgYSBzaWJsaW5nIG9mIHRoaXNcbiAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IHRoZSBrZXkgdGhhdCB0aGUgbmV3IG5vZGUgcmVwcmVzZW50cyAoa2V5IGhlcmUgYmVpbmcgcGFydCBvZiB0aGUgcGF0aCBiZWluZyByZWRhY3RlZClcbiAgKiBAcGFyYW0ge251bWJlcn0gZGVwdGggdGhlIGRlcHRoIG9mIHRoZSBuZXcgbm9kZSBpbiB0aGUgdHJlZSAtIHVzZWQgdG8gZGV0ZXJtaW5nIHdoZXRoZXIgdG8gYWRkIHRoZSBuZXcgbm9kZSBhcyBhIGNoaWxkIG9yIHNpYmxpbmcgb2YgdGhlIHByb3ZpZGVkIGBwYXJlbnRgIG5vZGVcbiAgKiBAcmV0dXJucyB7VHJlZU5vZGV9IGEgcmVmZXJlbmNlIHRvIHRoZSBuZXdseSBjcmVhdGVkIG5vZGUgaW4gdGhlIHRyZWVcbiAqL1xuZnVuY3Rpb24gbm9kZSAocGFyZW50LCBrZXksIGRlcHRoKSB7XG4gIGlmIChwYXJlbnQuZGVwdGggPT09IGRlcHRoKSB7XG4gICAgcmV0dXJuIG5vZGUocGFyZW50LnBhcmVudCwga2V5LCBkZXB0aClcbiAgfVxuXG4gIHZhciBjaGlsZCA9IHtcbiAgICBwYXJlbnQsXG4gICAga2V5LFxuICAgIGRlcHRoLFxuICAgIGNoaWxkcmVuOiBbXVxuICB9XG5cbiAgcGFyZW50LmNoaWxkcmVuLnB1c2goY2hpbGQpXG5cbiAgcmV0dXJuIGNoaWxkXG59XG5cbi8qKlxuICogQHR5cGVkZWYge29iamVjdH0gUmVzdG9yZUluc3RydWN0aW9uXG4gKiBAcHJvcCB7c3RyaW5nW119IHBhdGggYSByZXZlcnNlLW9yZGVyIHBhdGggdGhhdCBjYW4gYmUgdXNlZCB0byBmaW5kIHRoZSBjb3JyZWN0IGluc2VydGlvbiBwb2ludCB0byByZXN0b3JlIGEgYHZhbHVlYCBmb3IgdGhlIGdpdmVuIGBwYXJlbnRgIG9iamVjdFxuICogQHByb3Ageyp9IHZhbHVlIHRoZSB2YWx1ZSB0byByZXN0b3JlXG4gKiBAcHJvcCB7b2JqZWN0fSB0YXJnZXQgdGhlIG9iamVjdCB0byByZXN0b3JlIHRoZSBgdmFsdWVgIGluXG4gKi9cblxuLyoqXG4gKiBjcmVhdGUgYSByZXN0b3JlIGluc3RydWN0aW9uIGZvciB0aGUgZ2l2ZW4gcmVkYWN0UGF0aCBub2RlXG4gKiBnZW5lcmF0ZXMgYSBwYXRoIGluIHJldmVyc2Ugb3JkZXIgYnkgd2Fsa2luZyB1cCB0aGUgcmVkYWN0UGF0aCB0cmVlXG4gKiBAcGFyYW0ge1RyZWVOb2RlfSBub2RlIGEgdHJlZSBub2RlIHRoYXQgc2hvdWxkIGJlIGF0IHRoZSBib3R0b20gb2YgdGhlIHJlZGFjdCBwYXRoIChpLmUuIGhhdmUgbm8gY2hpbGRyZW4pIC0gdGhpcyB3aWxsIGJlIHVzZWQgdG8gd2FsayB1cCB0aGUgcmVkYWN0IHBhdGggdHJlZSB0byBjb25zdHJ1Y3QgdGhlIHBhdGggbmVlZGVkIHRvIHJlc3RvcmVcbiAqIEBwYXJhbSB7Kn0gdmFsdWUgdGhlIHZhbHVlIHRvIHJlc3RvcmVcbiAqIEBwYXJhbSB7b2JqZWN0fSB0YXJnZXQgYSByZWZlcmVuY2UgdG8gdGhlIHBhcmVudCBvYmplY3QgdG8gYXBwbHkgdGhlIHJlc3RvcmUgaW5zdHJ1Y3Rpb24gdG9cbiAqIEByZXR1cm5zIHtSZXN0b3JlSW5zdHJ1Y3Rpb259IGFuIGluc3RydWN0aW9uIHVzZWQgdG8gcmVzdG9yZSBhIG5lc3RlZCB2YWx1ZSBmb3IgYSBzcGVjaWZpYyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gcmVzdG9yZUluc3RyIChub2RlLCB2YWx1ZSwgdGFyZ2V0KSB7XG4gIGxldCBjdXJyZW50ID0gbm9kZVxuICBjb25zdCBwYXRoID0gW11cbiAgZG8ge1xuICAgIHBhdGgucHVzaChjdXJyZW50LmtleSlcbiAgICBjdXJyZW50ID0gY3VycmVudC5wYXJlbnRcbiAgfSB3aGlsZSAoY3VycmVudC5wYXJlbnQgIT0gbnVsbClcblxuICByZXR1cm4geyBwYXRoLCB2YWx1ZSwgdGFyZ2V0IH1cbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/modifiers.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/parse.js":
/*!***********************************************!*\
!*** ./node_modules/fast-redact/lib/parse.js ***!
\***********************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst rx = __webpack_require__(/*! ./rx */ \"(rsc)/./node_modules/fast-redact/lib/rx.js\")\n\nmodule.exports = parse\n\nfunction parse ({ paths }) {\n const wildcards = []\n var wcLen = 0\n const secret = paths.reduce(function (o, strPath, ix) {\n var path = strPath.match(rx).map((p) => p.replace(/'|\"|`/g, ''))\n const leadingBracket = strPath[0] === '['\n path = path.map((p) => {\n if (p[0] === '[') return p.substr(1, p.length - 2)\n else return p\n })\n const star = path.indexOf('*')\n if (star > -1) {\n const before = path.slice(0, star)\n const beforeStr = before.join('.')\n const after = path.slice(star + 1, path.length)\n const nested = after.length > 0\n wcLen++\n wildcards.push({\n before,\n beforeStr,\n after,\n nested\n })\n } else {\n o[strPath] = {\n path: path,\n val: undefined,\n precensored: false,\n circle: '',\n escPath: JSON.stringify(strPath),\n leadingBracket: leadingBracket\n }\n }\n return o\n }, {})\n\n return { wildcards, wcLen, secret }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3BhcnNlLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaLFdBQVcsbUJBQU8sQ0FBQyx3REFBTTs7QUFFekI7O0FBRUEsa0JBQWtCLE9BQU87QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRyxJQUFJOztBQUVQLFdBQVc7QUFDWCIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3BhcnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5jb25zdCByeCA9IHJlcXVpcmUoJy4vcngnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHBhcnNlXG5cbmZ1bmN0aW9uIHBhcnNlICh7IHBhdGhzIH0pIHtcbiAgY29uc3Qgd2lsZGNhcmRzID0gW11cbiAgdmFyIHdjTGVuID0gMFxuICBjb25zdCBzZWNyZXQgPSBwYXRocy5yZWR1Y2UoZnVuY3Rpb24gKG8sIHN0clBhdGgsIGl4KSB7XG4gICAgdmFyIHBhdGggPSBzdHJQYXRoLm1hdGNoKHJ4KS5tYXAoKHApID0+IHAucmVwbGFjZSgvJ3xcInxgL2csICcnKSlcbiAgICBjb25zdCBsZWFkaW5nQnJhY2tldCA9IHN0clBhdGhbMF0gPT09ICdbJ1xuICAgIHBhdGggPSBwYXRoLm1hcCgocCkgPT4ge1xuICAgICAgaWYgKHBbMF0gPT09ICdbJykgcmV0dXJuIHAuc3Vic3RyKDEsIHAubGVuZ3RoIC0gMilcbiAgICAgIGVsc2UgcmV0dXJuIHBcbiAgICB9KVxuICAgIGNvbnN0IHN0YXIgPSBwYXRoLmluZGV4T2YoJyonKVxuICAgIGlmIChzdGFyID4gLTEpIHtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IHBhdGguc2xpY2UoMCwgc3RhcilcbiAgICAgIGNvbnN0IGJlZm9yZVN0ciA9IGJlZm9yZS5qb2luKCcuJylcbiAgICAgIGNvbnN0IGFmdGVyID0gcGF0aC5zbGljZShzdGFyICsgMSwgcGF0aC5sZW5ndGgpXG4gICAgICBjb25zdCBuZXN0ZWQgPSBhZnRlci5sZW5ndGggPiAwXG4gICAgICB3Y0xlbisrXG4gICAgICB3aWxkY2FyZHMucHVzaCh7XG4gICAgICAgIGJlZm9yZSxcbiAgICAgICAgYmVmb3JlU3RyLFxuICAgICAgICBhZnRlcixcbiAgICAgICAgbmVzdGVkXG4gICAgICB9KVxuICAgIH0gZWxzZSB7XG4gICAgICBvW3N0clBhdGhdID0ge1xuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICB2YWw6IHVuZGVmaW5lZCxcbiAgICAgICAgcHJlY2Vuc29yZWQ6IGZhbHNlLFxuICAgICAgICBjaXJjbGU6ICcnLFxuICAgICAgICBlc2NQYXRoOiBKU09OLnN0cmluZ2lmeShzdHJQYXRoKSxcbiAgICAgICAgbGVhZGluZ0JyYWNrZXQ6IGxlYWRpbmdCcmFja2V0XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvXG4gIH0sIHt9KVxuXG4gIHJldHVybiB7IHdpbGRjYXJkcywgd2NMZW4sIHNlY3JldCB9XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/parse.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/redactor.js":
/*!**************************************************!*\
!*** ./node_modules/fast-redact/lib/redactor.js ***!
\**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst rx = __webpack_require__(/*! ./rx */ \"(rsc)/./node_modules/fast-redact/lib/rx.js\")\n\nmodule.exports = redactor\n\nfunction redactor ({ secret, serialize, wcLen, strict, isCensorFct, censorFctTakesPath }, state) {\n /* eslint-disable-next-line */\n const redact = Function('o', `\n if (typeof o !== 'object' || o == null) {\n ${strictImpl(strict, serialize)}\n }\n const { censor, secret } = this\n const originalSecret = {}\n const secretKeys = Object.keys(secret)\n for (var i = 0; i < secretKeys.length; i++) {\n originalSecret[secretKeys[i]] = secret[secretKeys[i]]\n }\n\n ${redactTmpl(secret, isCensorFct, censorFctTakesPath)}\n this.compileRestore()\n ${dynamicRedactTmpl(wcLen > 0, isCensorFct, censorFctTakesPath)}\n this.secret = originalSecret\n ${resultTmpl(serialize)}\n `).bind(state)\n\n redact.state = state\n\n if (serialize === false) {\n redact.restore = (o) => state.restore(o)\n }\n\n return redact\n}\n\nfunction redactTmpl (secret, isCensorFct, censorFctTakesPath) {\n return Object.keys(secret).map((path) => {\n const { escPath, leadingBracket, path: arrPath } = secret[path]\n const skip = leadingBracket ? 1 : 0\n const delim = leadingBracket ? '' : '.'\n const hops = []\n var match\n while ((match = rx.exec(path)) !== null) {\n const [ , ix ] = match\n const { index, input } = match\n if (index > skip) hops.push(input.substring(0, index - (ix ? 0 : 1)))\n }\n var existence = hops.map((p) => `o${delim}${p}`).join(' && ')\n if (existence.length === 0) existence += `o${delim}${path} != null`\n else existence += ` && o${delim}${path} != null`\n\n const circularDetection = `\n switch (true) {\n ${hops.reverse().map((p) => `\n case o${delim}${p} === censor:\n secret[${escPath}].circle = ${JSON.stringify(p)}\n break\n `).join('\\n')}\n }\n `\n\n const censorArgs = censorFctTakesPath\n ? `val, ${JSON.stringify(arrPath)}`\n : `val`\n\n return `\n if (${existence}) {\n const val = o${delim}${path}\n if (val === censor) {\n secret[${escPath}].precensored = true\n } else {\n secret[${escPath}].val = val\n o${delim}${path} = ${isCensorFct ? `censor(${censorArgs})` : 'censor'}\n ${circularDetection}\n }\n }\n `\n }).join('\\n')\n}\n\nfunction dynamicRedactTmpl (hasWildcards, isCensorFct, censorFctTakesPath) {\n return hasWildcards === true ? `\n {\n const { wildcards, wcLen, groupRedact, nestedRedact } = this\n for (var i = 0; i < wcLen; i++) {\n const { before, beforeStr, after, nested } = wildcards[i]\n if (nested === true) {\n secret[beforeStr] = secret[beforeStr] || []\n nestedRedact(secret[beforeStr], o, before, after, censor, ${isCensorFct}, ${censorFctTakesPath})\n } else secret[beforeStr] = groupRedact(o, before, censor, ${isCensorFct}, ${censorFctTakesPath})\n }\n }\n ` : ''\n}\n\nfunction resultTmpl (serialize) {\n return serialize === false ? `return o` : `\n var s = this.serialize(o)\n this.restore(o)\n return s\n `\n}\n\nfunction strictImpl (strict, serialize) {\n return strict === true\n ? `throw Error('fast-redact: primitives cannot be redacted')`\n : serialize === false ? `return o` : `return this.serialize(o)`\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3JlZGFjdG9yLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaLFdBQVcsbUJBQU8sQ0FBQyx3REFBTTs7QUFFekI7O0FBRUEscUJBQXFCLG1FQUFtRTtBQUN4RjtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQSxZQUFZLGlCQUFpQjtBQUM3QjtBQUNBO0FBQ0Esb0JBQW9CLHVCQUF1QjtBQUMzQztBQUNBOztBQUVBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjtBQUNBLE1BQU07QUFDTjs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsWUFBWSx5Q0FBeUM7QUFDckQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxlQUFlO0FBQzdCO0FBQ0E7QUFDQSx3Q0FBd0MsTUFBTSxFQUFFLEVBQUU7QUFDbEQsaURBQWlELE1BQU0sRUFBRSxNQUFNO0FBQy9ELDhCQUE4QixNQUFNLEVBQUUsTUFBTTs7QUFFNUM7QUFDQTtBQUNBLFVBQVU7QUFDVixrQkFBa0IsTUFBTSxFQUFFLEdBQUc7QUFDN0IscUJBQXFCLFFBQVEsYUFBYTtBQUMxQztBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBLGdCQUFnQix3QkFBd0I7QUFDeEM7O0FBRUE7QUFDQSxZQUFZLFVBQVU7QUFDdEIsdUJBQXVCLE1BQU0sRUFBRTtBQUMvQjtBQUNBLG1CQUFtQixRQUFRO0FBQzNCLFVBQVU7QUFDVixtQkFBbUIsUUFBUTtBQUMzQixhQUFhLE1BQU0sRUFBRSxNQUFNLElBQUksd0JBQXdCLFdBQVc7QUFDbEUsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLDhDQUE4QztBQUM1RCxzQkFBc0IsV0FBVztBQUNqQyxnQkFBZ0IsbUNBQW1DO0FBQ25EO0FBQ0E7QUFDQSxzRUFBc0UsWUFBWSxJQUFJLG1CQUFtQjtBQUN6RyxVQUFVLDBEQUEwRCxZQUFZLElBQUksbUJBQW1CO0FBQ3ZHO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2Zhc3QtcmVkYWN0L2xpYi9yZWRhY3Rvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxuY29uc3QgcnggPSByZXF1aXJlKCcuL3J4JylcblxubW9kdWxlLmV4cG9ydHMgPSByZWRhY3RvclxuXG5mdW5jdGlvbiByZWRhY3RvciAoeyBzZWNyZXQsIHNlcmlhbGl6ZSwgd2NMZW4sIHN0cmljdCwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCB9LCBzdGF0ZSkge1xuICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgY29uc3QgcmVkYWN0ID0gRnVuY3Rpb24oJ28nLCBgXG4gICAgaWYgKHR5cGVvZiBvICE9PSAnb2JqZWN0JyB8fCBvID09IG51bGwpIHtcbiAgICAgICR7c3RyaWN0SW1wbChzdHJpY3QsIHNlcmlhbGl6ZSl9XG4gICAgfVxuICAgIGNvbnN0IHsgY2Vuc29yLCBzZWNyZXQgfSA9IHRoaXNcbiAgICBjb25zdCBvcmlnaW5hbFNlY3JldCA9IHt9XG4gICAgY29uc3Qgc2VjcmV0S2V5cyA9IE9iamVjdC5rZXlzKHNlY3JldClcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlY3JldEtleXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIG9yaWdpbmFsU2VjcmV0W3NlY3JldEtleXNbaV1dID0gc2VjcmV0W3NlY3JldEtleXNbaV1dXG4gICAgfVxuXG4gICAgJHtyZWRhY3RUbXBsKHNlY3JldCwgaXNDZW5zb3JGY3QsIGNlbnNvckZjdFRha2VzUGF0aCl9XG4gICAgdGhpcy5jb21waWxlUmVzdG9yZSgpXG4gICAgJHtkeW5hbWljUmVkYWN0VG1wbCh3Y0xlbiA+IDAsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgpfVxuICAgIHRoaXMuc2VjcmV0ID0gb3JpZ2luYWxTZWNyZXRcbiAgICAke3Jlc3VsdFRtcGwoc2VyaWFsaXplKX1cbiAgYCkuYmluZChzdGF0ZSlcblxuICByZWRhY3Quc3RhdGUgPSBzdGF0ZVxuXG4gIGlmIChzZXJpYWxpemUgPT09IGZhbHNlKSB7XG4gICAgcmVkYWN0LnJlc3RvcmUgPSAobykgPT4gc3RhdGUucmVzdG9yZShvKVxuICB9XG5cbiAgcmV0dXJuIHJlZGFjdFxufVxuXG5mdW5jdGlvbiByZWRhY3RUbXBsIChzZWNyZXQsIGlzQ2Vuc29yRmN0LCBjZW5zb3JGY3RUYWtlc1BhdGgpIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHNlY3JldCkubWFwKChwYXRoKSA9PiB7XG4gICAgY29uc3QgeyBlc2NQYXRoLCBsZWFkaW5nQnJhY2tldCwgcGF0aDogYXJyUGF0aCB9ID0gc2VjcmV0W3BhdGhdXG4gICAgY29uc3Qgc2tpcCA9IGxlYWRpbmdCcmFja2V0ID8gMSA6IDBcbiAgICBjb25zdCBkZWxpbSA9IGxlYWRpbmdCcmFja2V0ID8gJycgOiAnLidcbiAgICBjb25zdCBob3BzID0gW11cbiAgICB2YXIgbWF0Y2hcbiAgICB3aGlsZSAoKG1hdGNoID0gcnguZXhlYyhwYXRoKSkgIT09IG51bGwpIHtcbiAgICAgIGNvbnN0IFsgLCBpeCBdID0gbWF0Y2hcbiAgICAgIGNvbnN0IHsgaW5kZXgsIGlucHV0IH0gPSBtYXRjaFxuICAgICAgaWYgKGluZGV4ID4gc2tpcCkgaG9wcy5wdXNoKGlucHV0LnN1YnN0cmluZygwLCBpbmRleCAtIChpeCA/IDAgOiAxKSkpXG4gICAgfVxuICAgIHZhciBleGlzdGVuY2UgPSBob3BzLm1hcCgocCkgPT4gYG8ke2RlbGltfSR7cH1gKS5qb2luKCcgJiYgJylcbiAgICBpZiAoZXhpc3RlbmNlLmxlbmd0aCA9PT0gMCkgZXhpc3RlbmNlICs9IGBvJHtkZWxpbX0ke3BhdGh9ICE9IG51bGxgXG4gICAgZWxzZSBleGlzdGVuY2UgKz0gYCAmJiBvJHtkZWxpbX0ke3BhdGh9ICE9IG51bGxgXG5cbiAgICBjb25zdCBjaXJjdWxhckRldGVjdGlvbiA9IGBcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAke2hvcHMucmV2ZXJzZSgpLm1hcCgocCkgPT4gYFxuICAgICAgICAgIGNhc2UgbyR7ZGVsaW19JHtwfSA9PT0gY2Vuc29yOlxuICAgICAgICAgICAgc2VjcmV0WyR7ZXNjUGF0aH1dLmNpcmNsZSA9ICR7SlNPTi5zdHJpbmdpZnkocCl9XG4gICAgICAgICAgICBicmVha1xuICAgICAgICBgKS5qb2luKCdcXG4nKX1cbiAgICAgIH1cbiAgICBgXG5cbiAgICBjb25zdCBjZW5zb3JBcmdzID0gY2Vuc29yRmN0VGFrZXNQYXRoXG4gICAgICA/IGB2YWwsICR7SlNPTi5zdHJpbmdpZnkoYXJyUGF0aCl9YFxuICAgICAgOiBgdmFsYFxuXG4gICAgcmV0dXJuIGBcbiAgICAgIGlmICgke2V4aXN0ZW5jZX0pIHtcbiAgICAgICAgY29uc3QgdmFsID0gbyR7ZGVsaW19JHtwYXRofVxuICAgICAgICBpZiAodmFsID09PSBjZW5zb3IpIHtcbiAgICAgICAgICBzZWNyZXRbJHtlc2NQYXRofV0ucHJlY2Vuc29yZWQgPSB0cnVlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc2VjcmV0WyR7ZXNjUGF0aH1dLnZhbCA9IHZhbFxuICAgICAgICAgIG8ke2RlbGltfSR7cGF0aH0gPSAke2lzQ2Vuc29yRmN0ID8gYGNlbnNvcigke2NlbnNvckFyZ3N9KWAgOiAnY2Vuc29yJ31cbiAgICAgICAgICAke2NpcmN1bGFyRGV0ZWN0aW9ufVxuICAgICAgICB9XG4gICAgICB9XG4gICAgYFxuICB9KS5qb2luKCdcXG4nKVxufVxuXG5mdW5jdGlvbiBkeW5hbWljUmVkYWN0VG1wbCAoaGFzV2lsZGNhcmRzLCBpc0NlbnNvckZjdCwgY2Vuc29yRmN0VGFrZXNQYXRoKSB7XG4gIHJldHVybiBoYXNXaWxkY2FyZHMgPT09IHRydWUgPyBgXG4gICAge1xuICAgICAgY29uc3QgeyB3aWxkY2FyZHMsIHdjTGVuLCBncm91cFJlZGFjdCwgbmVzdGVkUmVkYWN0IH0gPSB0aGlzXG4gICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHdjTGVuOyBpKyspIHtcbiAgICAgICAgY29uc3QgeyBiZWZvcmUsIGJlZm9yZVN0ciwgYWZ0ZXIsIG5lc3RlZCB9ID0gd2lsZGNhcmRzW2ldXG4gICAgICAgIGlmIChuZXN0ZWQgPT09IHRydWUpIHtcbiAgICAgICAgICBzZWNyZXRbYmVmb3JlU3RyXSA9IHNlY3JldFtiZWZvcmVTdHJdIHx8IFtdXG4gICAgICAgICAgbmVzdGVkUmVkYWN0KHNlY3JldFtiZWZvcmVTdHJdLCBvLCBiZWZvcmUsIGFmdGVyLCBjZW5zb3IsICR7aXNDZW5zb3JGY3R9LCAke2NlbnNvckZjdFRha2VzUGF0aH0pXG4gICAgICAgIH0gZWxzZSBzZWNyZXRbYmVmb3JlU3RyXSA9IGdyb3VwUmVkYWN0KG8sIGJlZm9yZSwgY2Vuc29yLCAke2lzQ2Vuc29yRmN0fSwgJHtjZW5zb3JGY3RUYWtlc1BhdGh9KVxuICAgICAgfVxuICAgIH1cbiAgYCA6ICcnXG59XG5cbmZ1bmN0aW9uIHJlc3VsdFRtcGwgKHNlcmlhbGl6ZSkge1xuICByZXR1cm4gc2VyaWFsaXplID09PSBmYWxzZSA/IGByZXR1cm4gb2AgOiBgXG4gICAgdmFyIHMgPSB0aGlzLnNlcmlhbGl6ZShvKVxuICAgIHRoaXMucmVzdG9yZShvKVxuICAgIHJldHVybiBzXG4gIGBcbn1cblxuZnVuY3Rpb24gc3RyaWN0SW1wbCAoc3RyaWN0LCBzZXJpYWxpemUpIHtcbiAgcmV0dXJuIHN0cmljdCA9PT0gdHJ1ZVxuICAgID8gYHRocm93IEVycm9yKCdmYXN0LXJlZGFjdDogcHJpbWl0aXZlcyBjYW5ub3QgYmUgcmVkYWN0ZWQnKWBcbiAgICA6IHNlcmlhbGl6ZSA9PT0gZmFsc2UgPyBgcmV0dXJuIG9gIDogYHJldHVybiB0aGlzLnNlcmlhbGl6ZShvKWBcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/redactor.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/restorer.js":
/*!**************************************************!*\
!*** ./node_modules/fast-redact/lib/restorer.js ***!
\**************************************************/
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
eval("\n\nconst { groupRestore, nestedRestore } = __webpack_require__(/*! ./modifiers */ \"(rsc)/./node_modules/fast-redact/lib/modifiers.js\")\n\nmodule.exports = restorer\n\nfunction restorer () {\n return function compileRestore () {\n if (this.restore) {\n this.restore.state.secret = this.secret\n return\n }\n const { secret, wcLen } = this\n const paths = Object.keys(secret)\n const resetters = resetTmpl(secret, paths)\n const hasWildcards = wcLen > 0\n const state = hasWildcards ? { secret, groupRestore, nestedRestore } : { secret }\n /* eslint-disable-next-line */\n this.restore = Function(\n 'o',\n restoreTmpl(resetters, paths, hasWildcards)\n ).bind(state)\n this.restore.state = state\n }\n}\n\n/**\n * Mutates the original object to be censored by restoring its original values\n * prior to censoring.\n *\n * @param {object} secret Compiled object describing which target fields should\n * be censored and the field states.\n * @param {string[]} paths The list of paths to censor as provided at\n * initialization time.\n *\n * @returns {string} String of JavaScript to be used by `Function()`. The\n * string compiles to the function that does the work in the description.\n */\nfunction resetTmpl (secret, paths) {\n return paths.map((path) => {\n const { circle, escPath, leadingBracket } = secret[path]\n const delim = leadingBracket ? '' : '.'\n const reset = circle\n ? `o.${circle} = secret[${escPath}].val`\n : `o${delim}${path} = secret[${escPath}].val`\n const clear = `secret[${escPath}].val = undefined`\n return `\n if (secret[${escPath}].val !== undefined) {\n try { ${reset} } catch (e) {}\n ${clear}\n }\n `\n }).join('')\n}\n\n/**\n * Creates the body of the restore function\n *\n * Restoration of the redacted object happens\n * backwards, in reverse order of redactions,\n * so that repeated redactions on the same object\n * property can be eventually rolled back to the\n * original value.\n *\n * This way dynamic redactions are restored first,\n * starting from the last one working backwards and\n * followed by the static ones.\n *\n * @returns {string} the body of the restore function\n */\nfunction restoreTmpl (resetters, paths, hasWildcards) {\n const dynamicReset = hasWildcards === true ? `\n const keys = Object.keys(secret)\n const len = keys.length\n for (var i = len - 1; i >= ${paths.length}; i--) {\n const k = keys[i]\n const o = secret[k]\n if (o) {\n if (o.flat === true) this.groupRestore(o)\n else this.nestedRestore(o)\n secret[k] = null\n }\n }\n ` : ''\n\n return `\n const secret = this.secret\n ${dynamicReset}\n ${resetters}\n return o\n `\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3Jlc3RvcmVyLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaLFFBQVEsOEJBQThCLEVBQUUsbUJBQU8sQ0FBQyxzRUFBYTs7QUFFN0Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxnQkFBZ0I7QUFDNUI7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLHNDQUFzQyxJQUFJO0FBQzdFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFFBQVE7QUFDbkI7QUFDQSxXQUFXLFVBQVU7QUFDckI7QUFDQTtBQUNBLGFBQWEsUUFBUTtBQUNyQjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksa0NBQWtDO0FBQzlDO0FBQ0E7QUFDQSxhQUFhLFFBQVEsV0FBVyxRQUFRO0FBQ3hDLFlBQVksTUFBTSxFQUFFLE1BQU0sV0FBVyxRQUFRO0FBQzdDLDRCQUE0QixRQUFRO0FBQ3BDO0FBQ0EsbUJBQW1CLFFBQVE7QUFDM0IsY0FBYyxFQUFFLFNBQVM7QUFDekIsVUFBVTtBQUNWO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhLFFBQVE7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixPQUFPLGVBQWU7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxNQUFNO0FBQ04sTUFBTTtBQUNOO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvYWxtYS9uZXh0Z2VuL05lYWgtbWFpbC9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3Jlc3RvcmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2Ugc3RyaWN0J1xuXG5jb25zdCB7IGdyb3VwUmVzdG9yZSwgbmVzdGVkUmVzdG9yZSB9ID0gcmVxdWlyZSgnLi9tb2RpZmllcnMnKVxuXG5tb2R1bGUuZXhwb3J0cyA9IHJlc3RvcmVyXG5cbmZ1bmN0aW9uIHJlc3RvcmVyICgpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGNvbXBpbGVSZXN0b3JlICgpIHtcbiAgICBpZiAodGhpcy5yZXN0b3JlKSB7XG4gICAgICB0aGlzLnJlc3RvcmUuc3RhdGUuc2VjcmV0ID0gdGhpcy5zZWNyZXRcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjb25zdCB7IHNlY3JldCwgd2NMZW4gfSA9IHRoaXNcbiAgICBjb25zdCBwYXRocyA9IE9iamVjdC5rZXlzKHNlY3JldClcbiAgICBjb25zdCByZXNldHRlcnMgPSByZXNldFRtcGwoc2VjcmV0LCBwYXRocylcbiAgICBjb25zdCBoYXNXaWxkY2FyZHMgPSB3Y0xlbiA+IDBcbiAgICBjb25zdCBzdGF0ZSA9IGhhc1dpbGRjYXJkcyA/IHsgc2VjcmV0LCBncm91cFJlc3RvcmUsIG5lc3RlZFJlc3RvcmUgfSA6IHsgc2VjcmV0IH1cbiAgICAvKiBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgKi9cbiAgICB0aGlzLnJlc3RvcmUgPSBGdW5jdGlvbihcbiAgICAgICdvJyxcbiAgICAgIHJlc3RvcmVUbXBsKHJlc2V0dGVycywgcGF0aHMsIGhhc1dpbGRjYXJkcylcbiAgICApLmJpbmQoc3RhdGUpXG4gICAgdGhpcy5yZXN0b3JlLnN0YXRlID0gc3RhdGVcbiAgfVxufVxuXG4vKipcbiAqIE11dGF0ZXMgdGhlIG9yaWdpbmFsIG9iamVjdCB0byBiZSBjZW5zb3JlZCBieSByZXN0b3JpbmcgaXRzIG9yaWdpbmFsIHZhbHVlc1xuICogcHJpb3IgdG8gY2Vuc29yaW5nLlxuICpcbiAqIEBwYXJhbSB7b2JqZWN0fSBzZWNyZXQgQ29tcGlsZWQgb2JqZWN0IGRlc2NyaWJpbmcgd2hpY2ggdGFyZ2V0IGZpZWxkcyBzaG91bGRcbiAqIGJlIGNlbnNvcmVkIGFuZCB0aGUgZmllbGQgc3RhdGVzLlxuICogQHBhcmFtIHtzdHJpbmdbXX0gcGF0aHMgVGhlIGxpc3Qgb2YgcGF0aHMgdG8gY2Vuc29yIGFzIHByb3ZpZGVkIGF0XG4gKiBpbml0aWFsaXphdGlvbiB0aW1lLlxuICpcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFN0cmluZyBvZiBKYXZhU2NyaXB0IHRvIGJlIHVzZWQgYnkgYEZ1bmN0aW9uKClgLiBUaGVcbiAqIHN0cmluZyBjb21waWxlcyB0byB0aGUgZnVuY3Rpb24gdGhhdCBkb2VzIHRoZSB3b3JrIGluIHRoZSBkZXNjcmlwdGlvbi5cbiAqL1xuZnVuY3Rpb24gcmVzZXRUbXBsIChzZWNyZXQsIHBhdGhzKSB7XG4gIHJldHVybiBwYXRocy5tYXAoKHBhdGgpID0+IHtcbiAgICBjb25zdCB7IGNpcmNsZSwgZXNjUGF0aCwgbGVhZGluZ0JyYWNrZXQgfSA9IHNlY3JldFtwYXRoXVxuICAgIGNvbnN0IGRlbGltID0gbGVhZGluZ0JyYWNrZXQgPyAnJyA6ICcuJ1xuICAgIGNvbnN0IHJlc2V0ID0gY2lyY2xlXG4gICAgICA/IGBvLiR7Y2lyY2xlfSA9IHNlY3JldFske2VzY1BhdGh9XS52YWxgXG4gICAgICA6IGBvJHtkZWxpbX0ke3BhdGh9ID0gc2VjcmV0WyR7ZXNjUGF0aH1dLnZhbGBcbiAgICBjb25zdCBjbGVhciA9IGBzZWNyZXRbJHtlc2NQYXRofV0udmFsID0gdW5kZWZpbmVkYFxuICAgIHJldHVybiBgXG4gICAgICBpZiAoc2VjcmV0WyR7ZXNjUGF0aH1dLnZhbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRyeSB7ICR7cmVzZXR9IH0gY2F0Y2ggKGUpIHt9XG4gICAgICAgICR7Y2xlYXJ9XG4gICAgICB9XG4gICAgYFxuICB9KS5qb2luKCcnKVxufVxuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGJvZHkgb2YgdGhlIHJlc3RvcmUgZnVuY3Rpb25cbiAqXG4gKiBSZXN0b3JhdGlvbiBvZiB0aGUgcmVkYWN0ZWQgb2JqZWN0IGhhcHBlbnNcbiAqIGJhY2t3YXJkcywgaW4gcmV2ZXJzZSBvcmRlciBvZiByZWRhY3Rpb25zLFxuICogc28gdGhhdCByZXBlYXRlZCByZWRhY3Rpb25zIG9uIHRoZSBzYW1lIG9iamVjdFxuICogcHJvcGVydHkgY2FuIGJlIGV2ZW50dWFsbHkgcm9sbGVkIGJhY2sgdG8gdGhlXG4gKiBvcmlnaW5hbCB2YWx1ZS5cbiAqXG4gKiBUaGlzIHdheSBkeW5hbWljIHJlZGFjdGlvbnMgYXJlIHJlc3RvcmVkIGZpcnN0LFxuICogc3RhcnRpbmcgZnJvbSB0aGUgbGFzdCBvbmUgd29ya2luZyBiYWNrd2FyZHMgYW5kXG4gKiBmb2xsb3dlZCBieSB0aGUgc3RhdGljIG9uZXMuXG4gKlxuICogQHJldHVybnMge3N0cmluZ30gdGhlIGJvZHkgb2YgdGhlIHJlc3RvcmUgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gcmVzdG9yZVRtcGwgKHJlc2V0dGVycywgcGF0aHMsIGhhc1dpbGRjYXJkcykge1xuICBjb25zdCBkeW5hbWljUmVzZXQgPSBoYXNXaWxkY2FyZHMgPT09IHRydWUgPyBgXG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHNlY3JldClcbiAgICBjb25zdCBsZW4gPSBrZXlzLmxlbmd0aFxuICAgIGZvciAodmFyIGkgPSBsZW4gLSAxOyBpID49ICR7cGF0aHMubGVuZ3RofTsgaS0tKSB7XG4gICAgICBjb25zdCBrID0ga2V5c1tpXVxuICAgICAgY29uc3QgbyA9IHNlY3JldFtrXVxuICAgICAgaWYgKG8pIHtcbiAgICAgICAgaWYgKG8uZmxhdCA9PT0gdHJ1ZSkgdGhpcy5ncm91cFJlc3RvcmUobylcbiAgICAgICAgZWxzZSB0aGlzLm5lc3RlZFJlc3RvcmUobylcbiAgICAgICAgc2VjcmV0W2tdID0gbnVsbFxuICAgICAgfVxuICAgIH1cbiAgYCA6ICcnXG5cbiAgcmV0dXJuIGBcbiAgICBjb25zdCBzZWNyZXQgPSB0aGlzLnNlY3JldFxuICAgICR7ZHluYW1pY1Jlc2V0fVxuICAgICR7cmVzZXR0ZXJzfVxuICAgIHJldHVybiBvXG4gIGBcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/restorer.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/rx.js":
/*!********************************************!*\
!*** ./node_modules/fast-redact/lib/rx.js ***!
\********************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = /[^.[\\]]+|\\[((?:.)*?)\\]/g\n\n/*\nRegular expression explanation:\n\nAlt 1: /[^.[\\]]+/ - Match one or more characters that are *not* a dot (.)\n opening square bracket ([) or closing square bracket (])\n\nAlt 2: /\\[((?:.)*?)\\]/ - If the char IS dot or square bracket, then create a capture\n group (which will be capture group $1) that matches anything\n within square brackets. Expansion is lazy so it will\n stop matching as soon as the first closing bracket is met `]`\n (rather than continuing to match until the final closing bracket).\n*/\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3J4LmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2Zhc3QtcmVkYWN0L2xpYi9yeC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCdcblxubW9kdWxlLmV4cG9ydHMgPSAvW14uW1xcXV0rfFxcWygoPzouKSo/KVxcXS9nXG5cbi8qXG5SZWd1bGFyIGV4cHJlc3Npb24gZXhwbGFuYXRpb246XG5cbkFsdCAxOiAvW14uW1xcXV0rLyAtIE1hdGNoIG9uZSBvciBtb3JlIGNoYXJhY3RlcnMgdGhhdCBhcmUgKm5vdCogYSBkb3QgKC4pXG4gICAgICAgICAgICAgICAgICAgIG9wZW5pbmcgc3F1YXJlIGJyYWNrZXQgKFspIG9yIGNsb3Npbmcgc3F1YXJlIGJyYWNrZXQgKF0pXG5cbkFsdCAyOiAvXFxbKCg/Oi4pKj8pXFxdLyAtIElmIHRoZSBjaGFyIElTIGRvdCBvciBzcXVhcmUgYnJhY2tldCwgdGhlbiBjcmVhdGUgYSBjYXB0dXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgZ3JvdXAgKHdoaWNoIHdpbGwgYmUgY2FwdHVyZSBncm91cCAkMSkgdGhhdCBtYXRjaGVzIGFueXRoaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAgd2l0aGluIHNxdWFyZSBicmFja2V0cy4gRXhwYW5zaW9uIGlzIGxhenkgc28gaXQgd2lsbFxuICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3AgbWF0Y2hpbmcgYXMgc29vbiBhcyB0aGUgZmlyc3QgY2xvc2luZyBicmFja2V0IGlzIG1ldCBgXWBcbiAgICAgICAgICAgICAgICAgICAgICAgICAocmF0aGVyIHRoYW4gY29udGludWluZyB0byBtYXRjaCB1bnRpbCB0aGUgZmluYWwgY2xvc2luZyBicmFja2V0KS5cbiovXG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/rx.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/state.js":
/*!***********************************************!*\
!*** ./node_modules/fast-redact/lib/state.js ***!
\***********************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = state\n\nfunction state (o) {\n const {\n secret,\n censor,\n compileRestore,\n serialize,\n groupRedact,\n nestedRedact,\n wildcards,\n wcLen\n } = o\n const builder = [{ secret, censor, compileRestore }]\n if (serialize !== false) builder.push({ serialize })\n if (wcLen > 0) builder.push({ groupRedact, nestedRedact, wildcards, wcLen })\n return Object.assign(...builder)\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3N0YXRlLmpzIiwibWFwcGluZ3MiOiJBQUFZOztBQUVaOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLHFCQUFxQixnQ0FBZ0M7QUFDckQsMENBQTBDLFdBQVc7QUFDckQsZ0NBQWdDLDZDQUE2QztBQUM3RTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9hbG1hL25leHRnZW4vTmVhaC1tYWlsL25vZGVfbW9kdWxlcy9mYXN0LXJlZGFjdC9saWIvc3RhdGUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gc3RhdGVcblxuZnVuY3Rpb24gc3RhdGUgKG8pIHtcbiAgY29uc3Qge1xuICAgIHNlY3JldCxcbiAgICBjZW5zb3IsXG4gICAgY29tcGlsZVJlc3RvcmUsXG4gICAgc2VyaWFsaXplLFxuICAgIGdyb3VwUmVkYWN0LFxuICAgIG5lc3RlZFJlZGFjdCxcbiAgICB3aWxkY2FyZHMsXG4gICAgd2NMZW5cbiAgfSA9IG9cbiAgY29uc3QgYnVpbGRlciA9IFt7IHNlY3JldCwgY2Vuc29yLCBjb21waWxlUmVzdG9yZSB9XVxuICBpZiAoc2VyaWFsaXplICE9PSBmYWxzZSkgYnVpbGRlci5wdXNoKHsgc2VyaWFsaXplIH0pXG4gIGlmICh3Y0xlbiA+IDApIGJ1aWxkZXIucHVzaCh7IGdyb3VwUmVkYWN0LCBuZXN0ZWRSZWRhY3QsIHdpbGRjYXJkcywgd2NMZW4gfSlcbiAgcmV0dXJuIE9iamVjdC5hc3NpZ24oLi4uYnVpbGRlcilcbn1cbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/state.js\n");
/***/ }),
/***/ "(rsc)/./node_modules/fast-redact/lib/validator.js":
/*!***************************************************!*\
!*** ./node_modules/fast-redact/lib/validator.js ***!
\***************************************************/
/***/ ((module) => {
eval("\n\nmodule.exports = validator\n\nfunction validator (opts = {}) {\n const {\n ERR_PATHS_MUST_BE_STRINGS = () => 'fast-redact - Paths must be (non-empty) strings',\n ERR_INVALID_PATH = (s) => `fast-redact Invalid path (${s})`\n } = opts\n\n return function validate ({ paths }) {\n paths.forEach((s) => {\n if (typeof s !== 'string') {\n throw Error(ERR_PATHS_MUST_BE_STRINGS())\n }\n try {\n if (//.test(s)) throw Error()\n const expr = (s[0] === '[' ? '' : '.') + s.replace(/^\\*/, '').replace(/\\.\\*/g, '.').replace(/\\[\\*\\]/g, '[]')\n if (/\\n|\\r|;/.test(expr)) throw Error()\n if (/\\/\\*/.test(expr)) throw Error()\n /* eslint-disable-next-line */\n Function(`\n 'use strict'\n const o = new Proxy({}, { get: () => o, set: () => { throw Error() } });\n const = null;\n o${expr}\n if ([o${expr}].length !== 1) throw Error()`)()\n } catch (e) {\n throw Error(ERR_INVALID_PATH(s))\n }\n })\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvZmFzdC1yZWRhY3QvbGliL3ZhbGlkYXRvci5qcyIsIm1hcHBpbmdzIjoiQUFBWTs7QUFFWjs7QUFFQSw2QkFBNkI7QUFDN0I7QUFDQTtBQUNBLDZEQUE2RCxFQUFFO0FBQy9ELElBQUk7O0FBRUosOEJBQThCLE9BQU87QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0I7QUFDcEI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsSUFBSSwyQkFBMkIsaUJBQWlCO0FBQ2xGO0FBQ0EsZUFBZTtBQUNmLG9CQUFvQixLQUFLO0FBQ3pCLFFBQVE7QUFDUjtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL2FsbWEvbmV4dGdlbi9OZWFoLW1haWwvbm9kZV9tb2R1bGVzL2Zhc3QtcmVkYWN0L2xpYi92YWxpZGF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnXG5cbm1vZHVsZS5leHBvcnRzID0gdmFsaWRhdG9yXG5cbmZ1bmN0aW9uIHZhbGlkYXRvciAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBFUlJfUEFUSFNfTVVTVF9CRV9TVFJJTkdTID0gKCkgPT4gJ2Zhc3QtcmVkYWN0IC0gUGF0aHMgbXVzdCBiZSAobm9uLWVtcHR5KSBzdHJpbmdzJyxcbiAgICBFUlJfSU5WQUxJRF9QQVRIID0gKHMpID0+IGBmYXN0LXJlZGFjdCDigJMgSW52YWxpZCBwYXRoICgke3N9KWBcbiAgfSA9IG9wdHNcblxuICByZXR1cm4gZnVuY3Rpb24gdmFsaWRhdGUgKHsgcGF0aHMgfSkge1xuICAgIHBhdGhzLmZvckVhY2goKHMpID0+IHtcbiAgICAgIGlmICh0eXBlb2YgcyAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoRVJSX1BBVEhTX01VU1RfQkVfU1RSSU5HUygpKVxuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKC/jgIcvLnRlc3QocykpIHRocm93IEVycm9yKClcbiAgICAgICAgY29uc3QgZXhwciA9IChzWzBdID09PSAnWycgPyAnJyA6ICcuJykgKyBzLnJlcGxhY2UoL15cXCovLCAn44CHJykucmVwbGFjZSgvXFwuXFwqL2csICcu44CHJykucmVwbGFjZSgvXFxbXFwqXFxdL2csICdb44CHXScpXG4gICAgICAgIGlmICgvXFxufFxccnw7Ly50ZXN0KGV4cHIpKSB0aHJvdyBFcnJvcigpXG4gICAgICAgIGlmICgvXFwvXFwqLy50ZXN0KGV4cHIpKSB0aHJvdyBFcnJvcigpXG4gICAgICAgIC8qIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSAqL1xuICAgICAgICBGdW5jdGlvbihgXG4gICAgICAgICAgICAndXNlIHN0cmljdCdcbiAgICAgICAgICAgIGNvbnN0IG8gPSBuZXcgUHJveHkoe30sIHsgZ2V0OiAoKSA9PiBvLCBzZXQ6ICgpID0+IHsgdGhyb3cgRXJyb3IoKSB9IH0pO1xuICAgICAgICAgICAgY29uc3Qg44CHID0gbnVsbDtcbiAgICAgICAgICAgIG8ke2V4cHJ9XG4gICAgICAgICAgICBpZiAoW28ke2V4cHJ9XS5sZW5ndGggIT09IDEpIHRocm93IEVycm9yKClgKSgpXG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IEVycm9yKEVSUl9JTlZBTElEX1BBVEgocykpXG4gICAgICB9XG4gICAgfSlcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/fast-redact/lib/validator.js\n");
/***/ })
};
;